javascript - Firefox Nodejs Websocket

标签 javascript html node.js websocket chat

我正在使用 Aurora 17、Chrome 22 和 Firefox 16,我正在尝试创建一个简单的聊天应用程序。我使用的是 Node 0.8.9。

Firefox 收到无法连接的错误

   Firefox can't establish a connection to the server at ws://localhost/.

我也尝试了该端口,它有相同的消息

Firefox can't establish a connection to the server at ws://localhost:4444/.

这是我的代码:

服务器代码:

var http = require('http');
var net = require('net');

function onRequest(req, res) {
   // Does enough to render a page and javascript
}
http.createServer(onRequest).listen(4444);

var socket = new net.Socket();
socket.connect(4444, "localhost", function(){
    console.log("Socket Connected");
});

socket.on("message", function(message){
    console.log(message);
});

客户端代码:

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

var connection = new WebSocket('ws://localhost:4444');

connection.onopen = function() {
    // Never runs
    alert("This never runs :(")
}

connection.onerror = function(error) {
    // Always runs here
    console.log(error)
}

我从服务器上的日志语句中得到一个输出,表明套接字已连接,但 Firefox 无法连接到该套接字。

在 Chrome 上,没有错误,但“onopen”从未被触发。使用 connection.send("a message") 不会向服务器发送任何内容并返回 false。

最佳答案

您正在服务器代码中创建一个普通的 TCP 客户端套接字并将其连接到您的 HTTP 服务器。这与创建浏览器可以连接的 WebSocket 服务器完全不同。使用为此目的而设计的库(socket.io 非常常用,因为当浏览器不支持 WebSocket 时,它可以回退到备用传输)。

关于javascript - Firefox Nodejs Websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12823426/

相关文章:

javascript - 如何使用 webworkers 加载内联 Javascript?

javascript - 如何在单击时使用 jQuery 查找同级元素的值

javascript - 我如何以循环方式为图像制作动画?`

javascript - 显示没有输入元素的移动键盘

node.js - 向客户端发送 cookie,但 Express 不起作用

javascript - node.js promise 在 if 语句中没有解析

javascript - Chai-As-Promised 即使错误也会通过

javascript - 尝试应用自定义滚动条

html - 表格布局在 Opera Mini 中不起作用

javascript - 在 PassportJS 中生成自定义错误