javascript - websocket 问题 : cannot connect to node. js 服务器

标签 javascript google-chrome node.js websocket

我已经启动了一个 node.js 服务器并使用 express 运行,我正在尝试使用 socket.io 服务器端和 chrome 12 客户端建立一个 websocket 连接。当我尝试连接时,socket.io 输出一条调试消息说“破坏非 socket.io 升级”并且我的连接处理程序中的代码没有运行。同样在客户端,我的套接字的 readyState 是 2(关闭)。

[编辑] socket的readyState从0变为2

最佳答案

确保将 socket.io.js 文件插入客户端代码并使用它。如果您尝试在客户端创建自己的 websocket,您可能会遇到问题。

为你的服务器做这样的事情:

var app = require('express').createServer()
  , io = require('socket.io').listen(app);

app.listen(80);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

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

对于您正在提供的 HTML 文件,还有类似这样的内容:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

确保您从网络服务器目录提供 /socket.io/socket.io.js。然后,您所要做的就是从选项或使用 Firebug 查看您的控制台登录到 Web 浏览器的开发人员环境中。当您转到该页面时。

关于javascript - websocket 问题 : cannot connect to node. js 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6634940/

相关文章:

javascript - 网站在 Chrome/Firefox/IE 9+ 上显示正常,但在 IE 8 上显示白页

javascript - 在 Chrome 和 Firefox 中关闭 https 门控 Web API 的 https 要求

google-chrome - console.log 开头的额外空间

javascript - 如何使用nodejs实现分段文件上传代理?

javascript - 如何在桌面网络浏览器(chrome、firefox...)上创建通知?

javascript - 使用 ckeditor 捕获事件

javascript - 向下滚动时如何创建一个小窗口?

javascript - 如何在 javascript 和 jquery 中正确设置文本框值?

javascript - 在 Chrome 中强制自动打开对话框

node.js - 如何为 Express 应用程序设置不同的 View 引擎?