0
我使用的是Aurora 17,Chrome 22和Firefox 16,我试图创建一个简单的聊天应用程序。我正在使用节点0.8.9。Firefox Nodejs Websocket
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)
}
我得到一个输出的Socket是从服务器上的日志语句连接但Firefox无法连接到插座。
在Chrome上,没有错误,但“onopen”永远不会被触发。使用connection.send(“消息”)不会向服务器发送任何内容并返回false。
但是,这是否解释了为什么Chrome不起作用(没有错误信息但无法发送)?它假设支持Websockets(Firefox也是如此)。同样,Firefox有websockets但不能连接,Chrome有websockets但没有发送任何东西。 – user654628
浏览器在尝试连接到声称是WebSocket服务器的事情时可能会有不同的行为,但事实上并非如此:它依赖于实现,就像每个浏览器都有自己的呈现无效HTML方式的糟糕的旧日子。请注意,实现相关的错误恢复可以在相同浏览器的版本之间有所不同。 – ebohlman
我明白了,我不知道。我想我不能使用套接字,因为我发现我使用的主机(appfog)不支持套接字。我想我回到旧的获取和发布REST API服务。谢谢你的帮助。 – user654628