【发布时间】:2016-09-09 15:12:24
【问题描述】:
我决定在 socket.io 上聊天,所以我只是复制了一个来自 http://psitsmike.com/2011/09/node-js-and-socket-io-chat-tutorial/ 的示例。
服务器端:
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');
...
脚本运行良好,但我在 Chrome 控制台中发现它无法建立 websocket 连接,并回退到 XHR('websocket 连接无效')。尝试更改端口,并在 localhost 和 VPS 上进行了测试 - 结果相同。可能是什么原因?使用 express 2.4.6 和 socket.io 0.8.4。
【问题讨论】:
-
是 var socket = io();不为你工作或仍然给出错误@Kirill Alexeev
标签: node.js sockets websocket socket.io