我正在使用 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/