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プロパティーを定義する必要があります。 –
あなたの問題が解決されてうれしいこと:) –