我是node.js和socket.io的新手,嘗試用http://socket.io/#how-to-use的示例將服務器連接到客戶端。 (無本地主機)Node.js + socket.io:服務器上的應用程序無法正常工作
服務器:
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs')
app.listen(80);
function handler (req, res) {
fs.readFile(__dirname + '/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html'+err);
}
res.writeHead(200);
res.end(data);
});
}
io.sockets.on('connection', function (socket) {
socket.on('message', function(msg){
console.log('Got text: '+msg);
socket.broadcast.send(msg);
});
socket.on('disconnect', function() { });
});
客戶:
<html><head><script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
socket.on('connect', function() {
alert('connected.');
socket.on('message', function (msg) {
// my msg
alert('message received: '+msg);
});
socket.send('hi');
});
</script>
</head><body>This is the content :)</body>
</html>
谷歌瀏覽器將顯示在控制檯:
Unexpected response code: 502
此外,收到的每封郵件後,Chrome瀏覽器添加
GET http://[myServer]/socket.io/1/?t=1352313105809 socket.io.js:1659
Socket.handshake socket.io.js:1659
Socket.connect socket.io.js:1699
maybeReconnect
到控制檯。 Wheres問題?
謝謝。我編輯了代碼並確實連接了,因此我認爲腳本(socket.io.js)已加載。但沒有收到任何消息。 你有什麼建議我可以測試消息是否實際發送? – xoxox
@xoxox我更新了我的回覆。 – mabako
謝謝,它最終收到自己的消息,但不是其他消息(當我連接不同的瀏覽器時)。 Opera不會將任何東西打印到控制檯中;谷歌瀏覽器打印「意外的響應代碼:502」,但它仍然有效。 (我編輯了我的問題並添加了一些信息) – xoxox