[英]Client Disconnecting on client.emit - Node.js
我已經為此工作了好幾天,並且使問題盡可能的簡單。
我只有一個按鈕,它將命令發送到我的node.js服務器,該服務器只是console.log記錄短語“測試”,還向客戶端發出信號以運行功能。
問題是客戶端正在斷開連接?! 但是,它不會在第二次嘗試時斷開連接。
客戶:
<button onclick="test()">Login</button>
var socket = io.connect('http://54.213.92.113:8080');
function test(){
socket.emit('test');
}
socket.on('conf', function () {
alert("testing worked");
}
服務器:
var io = require('socket.io').listen(app);
io.sockets.on('connection', function(client) {
client.on('test', function(){
client.emit('conf);
console.log("testing");
});
});
這是我的日志。 同樣,該代碼似乎可以再次嘗試:
第一次嘗試:
info - socket.io started
debug - served static content /socket.io.js
debug - client authorized
info - handshake authorized Egh72p-hOLFSpLh2CS7m
debug - setting request GET /socket.io/1/websocket/Egh72p-hOLFSpLh2CS7m
debug - set heartbeat interval for client Egh72p-hOLFSpLh2CS7m
debug - client authorized for
debug - websocket writing 1::
debug - websocket writing 5:::{"name":"conf"}
testing
info - transport end (socket end)
debug - set close timeout for client Egh72p-hOLFSpLh2CS7m
debug - cleared close timeout for client Egh72p-hOLFSpLh2CS7m
debug - cleared heartbeat interval for client Egh72p-hOLFSpLh2CS7m
debug - discarding transport
debug - served static content /socket.io.js
debug - client authorized
info - handshake authorized PCzh1CS-tze49XHaCS7n
debug - setting request GET /socket.io/1/websocket/PCzh1CS-tze49XHaCS7n
debug - set heartbeat interval for client PCzh1CS-tze49XHaCS7n
debug - client authorized for
debug - websocket writing 1::
第二次嘗試后:
info - socket.io started
debug - served static content /socket.io.js
debug - client authorized
info - handshake authorized Egh72p-hOLFSpLh2CS7m
debug - setting request GET /socket.io/1/websocket/Egh72p-hOLFSpLh2CS7m
debug - set heartbeat interval for client Egh72p-hOLFSpLh2CS7m
debug - client authorized for
debug - websocket writing 1::
debug - websocket writing 5:::{"name":"conf"}
testing
info - transport end (socket end)
debug - set close timeout for client Egh72p-hOLFSpLh2CS7m
debug - cleared close timeout for client Egh72p-hOLFSpLh2CS7m
debug - cleared heartbeat interval for client Egh72p-hOLFSpLh2CS7m
debug - discarding transport
debug - served static content /socket.io.js
debug - client authorized
info - handshake authorized PCzh1CS-tze49XHaCS7n
debug - setting request GET /socket.io/1/websocket/PCzh1CS-tze49XHaCS7n
debug - set heartbeat interval for client PCzh1CS-tze49XHaCS7n
debug - client authorized for
debug - websocket writing 1::
debug - websocket writing 5:::{"name":"conf"}
testing
我已經研究了一段時間,卻一無所獲。 有誰知道為什么此代碼在第一次嘗試時不起作用? -僅在第一次嘗試后才會發出警報。
我在這里找到了解決方案: socket.io客戶端連接無法第二次建立
// in client
io.connect('host:port', { 'force new connection': true });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.