我目前正在使用Cordova創建的移動應用程序。它使用套接字連接到我們的另一個設備與它進行通信。我們目前使用chrome.sockets.tcp和這個plugin。在JavaScript中使用WebSocket時出錯
它連接好,但在Android設備上有一個問題斷開連接。這不是一個超時問題,因爲斷開連接可能發生在20到30秒到10到15分鐘之間。它甚至會在我每秒下載2到3次請求的數據時斷開連接。日誌中沒有錯誤和任何內容來表明發生了什麼。看起來,chrome.sockets.tcp沒有太多的連接狀態報告的方式,所以我可以找出爲什麼它丟棄連接。
所以我試圖切換到JavaScript的WebSocket,看看它是否有助於斷開連接問題。或者至少它似乎提供更多的連接狀態信息。但我無法連接。我得到Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE
。這裏是我的代碼:
var socket = new WebSocket("ws://" + IP + ":" + port);
socket.protocol = "soap";
socket.onclose = function(event) {
console.log(event);
};
socket.onerror = function(event) {
console.log(event);
};
socket.onmessage = function(event) {
console.log(event);
};
socket.onopen = function(event) {
console.log(event);
};
我做了一些研究,看來我可能得考慮使用socket.protocol = "aProtocol";
的協議,但之後我設置了協議,並設置一個斷點socket.protocol仍然是「」連之後致電socket.protocol = "soap";
。它也無法使用構造函數來設置協議。
任何人都可以提供一些原因爲什麼chrome.sockets.tcp在Android上有這樣的斷開連接問題,但不是iOS或者爲什麼使用JavaScript的本地WebSocket無法連接的任何原因?任何幫助是極大的讚賞。
我也試過。 –