2013-07-02 146 views
0

我的服务器端代码如下:为什么我的浏览器无法连接到nodejs 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); 
    }); 
}); 

我的浏览器端代码如下:

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); 

} 

首先,我运行服务器“节点server.js”,它的确定。当我运行cient代码时,浏览器说它不能连接到'http://127.0.0.1:1000',为什么? 客户端是否也必须用socket.io写入?

回答

1

是的,你必须使用正确的协议来socket.io,看看socket.io-client和文档中的例子。

0

你应该这样socket.io客户端连接到服务器:

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

你可能想签我Scalable Socket.IO Sample

+0

嗨,我知道客户可以这样写。但我想知道是否可以在不使用socket.io的情况下编写客户端。 – slee

+0

我也不知道。也许你应该跟踪socket.io客户端的源代码并理解它的协议。 –

+0

为什么你想连接到没有socket.io客户端的服务器?如果您只想使用webscoket进行传输,您可以在服务器上使用以下配置:'io.set('transports',['websocket']);'。 –

相关问题