我使用Node.js与套接字。IO实现websockets在我的一个页面。server.js (Node.js运行的东西)有以下代码:
var http = require("http").createServer(),
io = require("socket.io").listen(http);
http.listen(8080);
io.sockets.on("connection", function(socket) {
socket.emit("message", {hello:"world"});
});
这是我要连接的代码:
var socket = new WebSocket("ws://92.60.122.235:8080/");
socket.onopen = function() {
alert("Socket has been opened!");
}
当我加载页面时,什么也没有发生。我使用的是Chrome,我知道它支持websockets。错误控制台中没有错误,如果我观察socket。我没有看到任何用户在连接。
据我所知,这应该工作,谁能解释什么可能出错?
需要一个套接字。io客户端需要通过一些身份验证阶段。试试这个,它应该工作(客户端javascript是由套接字提供的)。IO本身,不用担心)。
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('message', function (data) {
console.log(data);
socket.emit('helloworld', { msg: 'why do you so love to say hello world?' });
});
</script>
从http://socket.io/faq 如果实际的WebSocket不是,为什么不叫它
WebSocket
呢呈现和模仿它的API?插座。IO甚至比WebSocket做得更多如果选择WebSocket作为传输,并且用户正在浏览你的网站有一个超现代的浏览器。某些特性心跳、超时和断开连接支持对实时至关重要应用程序,但不是由WebSocket API开箱即用的。
这类似于jQuery创建一个功能丰富的和简单的美元。与规范化XMLHttpRequest相反的ajax API。
您可以通过高级逻辑项目的博客文章"Websocket Server Demonstration"下载在Chrome, Firefox和IE(至少)中运行的网页源代码。