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