2016-05-13 132 views
0

我決定在socket.io上進行聊天,所以我剛剛複製了一個來自http://psitsmike.com/2011/09/node-js-and-socket-io-chat-tutorial/的示例。Socket.io:連接在收到握手響應之前關閉

服務器端:

var app = require('express').createServer() 
var io = require('socket.io').listen(app); 
app.listen(8080); 

app.get('/', function(req, res) { 
    res.sendfile(__dirname + '/index.html'); 
}); 

var usernames = {}; 

io.sockets.on('connection', function(socket) { 
    socket.on('sendchat', function(data) { 
     io.sockets.emit('updatechat', socket.username, data); 
    }); 

    socket.on('adduser', function(username) { 
     socket.username = username; 
     usernames[username] = username; 
     socket.emit('updatechat', 'SERVER', 'you have connected'); 
     socket.broadcast.emit('updatechat', 'SERVER', username + ' has connected'); 
     io.sockets.emit('updateusers', usernames); 
    }); 

    socket.on('disconnect', function() { 
     delete usernames[socket.username]; 
     io.sockets.emit('updateusers', usernames); 
     socket.broadcast.emit('updatechat', 'SERVER', socket.username + ' has disconnected'); 
    }); 
}); 

客戶端:

< script src="/socket.io/socket.io.js">< /script> 
< script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></ script> 
< script> 
var socket = io.connect('http://localhost:8080'); 
... 

該腳本工作正常,但我的,因爲它不能建立WebSocket連接的瀏覽器控制檯發現,並回落到XHR('websocket連接無效')。試圖改變端口,並測試了本地主機和VPS - 同樣的結果。可能是什麼原因?使用express 2.4.6和socket.io 0.8.4。

+0

是VAR插座= 10()檢查;不爲你工作或仍然給錯誤@Kirill Alexeev – Sumeet

回答

0

應用程序被部署爲相同容器視圖的一部分,它將自動使用應用程序url進行連接。主機和可能不需要的端口,下面的選項

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io(); 
</script> 

其他選項

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io('http://localhost');  
</script> 
相關問題