我想嘗試從ReactJS客戶端連接到我的Node.js socket.io服務器。 服務器記錄用戶連接/斷開連接,但客戶端似乎超時(其狀態表示斷開連接)。(Restify,ReactJS,Node.js)Socket.io客戶端狀態斷開連接,服務器記錄連接
下面是相關片段: 服務器
var server = restify.createServer()
const socketio = require('socket.io')
const io= socketio.listen(server)
io.sockets.on('connection', function(socket){
console.log('a user connected');
socket.emit('server event',{'foo':'bar'})
socket.on('disconnect',function(){
console.log('user disconnected');
});
socket.on('client event',function(data){
console.log(data)
})
})
server.listen(8999, function() {
console.log('%s listening at %s', server.name, server.url)
})
然後我打開應用程序,它記錄了「用戶連接」事件,但是客戶端似乎是不知道的連接。
陣營客戶端:
componentDidMount(){
try {
this.socket= io.connect('localhost:8999')
this.socket.on('connected',function(socket){
console.log('connected')
})
this.socket.emit('client event',{value: 'valami tortent'})
}catch(error){
console.log(error)
}
this.socket.on('server event',function(data){
console.log(data)
})
}
我試圖調試客戶端,它似乎一直沒有收到數據包的連接確認。
什麼似乎是問題?我嘗試了客戶端的每個連接url類型。 奇怪的是服務器知道連接和斷開連接。
感謝您的回答,我只是沒有在問題中包含代碼。該問題已得到解決,我找到了一個解決方案: 對於Restify服務器,您必須定義socketio:true屬性。 –
很高興你的問題已經解決:) –