2016-05-13 131 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> 
相关问题