Ich entschied mich für einen Chat auf socket.io, also kopierte ich einfach ein Beispiel aus http://psitsmike.com/2011/09/node-js-and-socket-io-chat-tutorial/.Socket.io: Verbindung geschlossen, bevor eine Handshake-Antwort empfangen wurde
Server-Seite:
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');
});
});
Client-Seite:
< 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');
...
Das Skript funktioniert gut, aber ich fand heraus, in der Chrome-Konsole, die es nicht websocket Verbindung herstellen kann, und fällt zurück auf XHR ('Websocket-Verbindung ungültig'). Versucht, Ports zu ändern, und getestet sowohl auf localhost und VPS - die gleichen Ergebnisse. Was kann der Grund sein? Mit Express 2.4.6 und socket.io 0.8.4.
Ist var socket = io(); funktioniert nicht für Sie oder gibt immer noch Fehler @Kirill Alexeev – Sumeet