2013-07-02 93 views
0

我正在嘗試與nodejs實現設備配對程序。該服務器被他人實現,並使用插座IO:替代套接字IO客戶端

var http = require('http'), 
io = require('socket.io'); 

但是,我配對不支持的WebSocket(HTML5)的設備之一。是可以創建一個套接字io客戶端,而無需使用套接字io,有沒有其他的選擇?

在此先感謝。

回答

0

經過大量的嘗試和捕獲後,我發現我使用的瀏覽器無法支持Socket.IO.js中的緩衝行爲。第一個發射沒有緩衝,因此可以正確發射第一個配對請求。 所以我已經將Socket.prototype.setBuffer(true)更改爲Socket.prototype.setBuffer(false)。這可能不是一個乾淨的解決方案,但在我的情況下,它的工作原理。

1

socket.io支持各種傳輸,如flashsockets和XHR長輪詢。因此,您不必使用不同的客戶端 - 即使沒有Websocket支持,它也應該可以即裝即用。

說到替代方案......有一些客戶端庫例如對於Python而言,但我不認爲瀏覽器中有任何運行 - 就像我之前所說的那樣,它們不需要它們。

+0

非常感謝你的回答哪些類型的回退的。當我檢查服務器日誌時,我看到我的瀏覽器只能使用jsonp輪詢傳輸。起初「發射」一切正常,但當我發出另一條消息時,服務器端調試日誌中沒有任何東西。你有什麼想法,問題是什麼? – miette

0

你可以配置你想使用

io.configure("production", function() { 
    io.enable("browser client minification"); 
    io.enable("browser client etag"); 
    io.enable("browser client gzip"); 
    io.set("transports", ['websocket', 'jsonp-polling']); 
    io.set("log level", 1); 
}); 

io.configure("development", function() { 
    io.set("transports", ['websocket', 'jsonp-polling']); 
}); 

,你可以在這裏看到所有選項on the wiki