2017-12-20 8 views
0

私はエラーが発生していませんが、io.on('connection', function(socket){ console.log('a user connected', socket.client.id); });は、アプリケーションをlinodeにデプロイしても機能しないようです。ソケットioがデプロイメントに対応していません

しかし、その開発はうまくいっていますか?

server.js(ソケットIO)

var express = require('express'); 
 
var app = express(); 
 
var http = require('http').Server(app); 
 
var io = require('socket.io')(http); 
 

 
var port = 8002; 
 

 
io.on('connection', function (socket) { 
 
    console.log('a user connected', socket.client.id); // triggering in the development 
 
}); 
 

 
http.listen(port, function() { 
 
    console.log('Express server listening on port ' + port); 
 
    console.log('env = ' + app.get('env') + 
 
     '\n__dirname = ' + __dirname + 
 
     '\nprocess.cwd = ' + process.cwd()); 
 
});

クライアントHTML(注:私は私のWebアプリケーションのIPにはlocalhostを変更)

<script src="http://localhost:8002/socket.io/socket.io.js"></script> 

と私のアプリケーションは、そう私と一緒に負担してくださいsocket.ioポーリングxhr.js

enter image description here

私はこれにちょっと新たなんだを使用しているように見えます。

いずれの提案も高く評価されます。ありがとうございました。

+0

実稼働環境では、URLのポートは使用していますか?おそらく、socket.ioがポート80に接続されることを期待しています。 – Porlune

+0

@Porlune私のサーバーは**ポート8002 **をリッスンしていますが、アプリケーションは**ポート82で動作しています** – Priz

+0

Express appはsocket.ioと同じhttpサーバを使います。そのように設定し、それが動作するかどうかお知らせください。 – Porlune

答えて

1

私はこれがあなたの特定の問題を修正する場合は知っているが、あなたのアプリケーションは、あなたがそれをこのように設定することができます使用して同じポートでsocket.ioを設定するためにはありません:

const express = require('express'); 
const app = express(); 
const http = require('http'); 
const hostname = 'localhost'; 
const port = 80; 

// the express app is registered with the server 
const server = http.createServer(app); 

// setup socket.io and register it with the server 
const io = require('socket.io').listen(server); 

// tell the application to listen on the port specified 
server.listen(port, hostname, function (err) { 
    if (err) { 
    throw err; 
    } 
    console.log('server listening on: ', hostname, ':', port); 
}); 

今ソケット.ioはアプリケーションと同じポート上で動作します。

関連する問題