为什么我的浏览器无法连接到nodejs socket.io服务器?

时间:2013-07-02 02:19:58

标签: node.js websocket socket.io

我的服务器端代码如下:

var app = require('http').createServer(handler)
  , io = require('socket.io').listen(app)


app.listen(1000);

function handler (req, res) {

  function (err, data) {

    res.writeHead(200);
    res.end(data);
  });
}

io.sockets.on('connection', function (socket) {
  socket.emit('message', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

var app = require('http').createServer(handler) , io = require('socket.io').listen(app) app.listen(1000); function handler (req, res) { function (err, data) { res.writeHead(200); res.end(data); }); } io.sockets.on('connection', function (socket) { socket.emit('message', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });

我的浏览器端代码如下:

window.WebSocket = window.WebSocket || window.MozWebSocket;

if (!window.WebSocket){  

alert("WebSocket not supported by this browser");

return;

}

var websocket = new WebSocket("ws://127.0.0.1:1000/");

websocket.onmessage = function(evt){

var data = evt.data;
console.log(data);

}
首先我使用'node server.js'运行服务器,没关系。当我运行客户端代码时,浏览器说它无法连接到“if (!window.WebSocket){ alert("WebSocket not supported by this browser"); return; } var websocket = new WebSocket("ws://127.0.0.1:1000/"); websocket.onmessage = function(evt){ var data = evt.data; console.log(data); } ”,为什么? 客户端是否也必须使用socket.io编写?

2 个答案:

答案 0 :(得分:1)

是的,您必须使用正确的socket.io协议,查看socket.io-client以及文档中的示例。

答案 1 :(得分:0)

您应该使用socket.io客户端连接到服务器,如下所示:

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io.connect('http://localhost:3000');
</script>

您可能想要结帐我的Scalable Socket.IO Sample