使用PHP和Unity3D對我的項目進行原型設計後,我決定使用Cordova和NodeJS構建生產版本。設置與NodeJS和Socket.IO的無狀態連接
我目前在NodeJS上使用Socket.io,並且對連接有些困惑。我曾預計這個工作的出路是以下過程:
- 客戶端將與請求
- 服務器將請求
- 的連接將被關閉 響應連接到服務器
但是,似乎連接喜歡保持打開,並且如果連接關閉,它會不斷嘗試重新連接,這不是我正在尋找的。我試圖建立一種單一的數據傳輸狀態,類似於當您向PHP文件發出網絡請求時發生的情況。
該項目的源代碼是相當多的樣板代碼:
var application = require('express')();
var http = require('http').Server(application);
var server = require('socket.io')(http);
http.listen(8080, function() {
console.log('Listening on *:8080');
});
server.on('connection', function(socket) {
console.log('SERVER: A new connection has been received.');
server.on('disconnect', function() {
console.log('SERVER: A connection has been closed.');
});
});
我並不需要一個持久連接,我也不想要一個。
想法:我可以發送客戶的密切握手。例如:
- 一些數據發送到服務器
- 收到來自服務器
- 一些數據發送到所述服務器的關閉請求/剛關閉套接字
- 繼續應用邏輯一旦插座被關閉
這是處理這個問題的正確方法嗎?然而,問題就出現了,如果數據丟失了,那麼就會有一個永久打開的套接字。在這種情況下實施基本超時是否理想? (IE:如果在10秒內未收到響應,則發生錯誤或服務器不可用)。