Node.js ReactJS Socket.io-client未连接

Node.js ReactJS Socket.io-client未连接,node.js,reactjs,websocket,socket.io,restify,Node.js,Reactjs,Websocket,Socket.io,Restify,我已经构建了一个客户端服务器web套接字应用程序 我面临的问题是,当服务器接收到连接时,客户端仍然无法连接 服务器端 let restify=require('restify')) 让server=restify.createServer() 让socketio=require('socket.io') 使用(restify.bodyParser()) use(restify.queryParser()) 服务器使用((请求、恢复、下一步)=>{ res.setHeader('Access-Co

我已经构建了一个客户端服务器web套接字应用程序

我面临的问题是,当服务器接收到连接时,客户端仍然无法连接

服务器端
let restify=require('restify'))
让server=restify.createServer()
让socketio=require('socket.io')
使用(restify.bodyParser())
use(restify.queryParser())
服务器使用((请求、恢复、下一步)=>{
res.setHeader('Access-Control-Allow-Origin','*'))
res.setHeader('Access-Control-Allow-Methods','GET,PUT,POST,DELETE,OPTIONS')
res.setHeader('Access-Control-Allow-Headers','X-request-With,Content-Type')
下一个()
})
//在此处添加路线
服务器。侦听(3000,函数(){
console.log(“%s”在%s、server.name、server.url上侦听)
})
让websocket=socketio.listen(server.server,{path:'/api/chat/connect',来源:'http://localhost:* http://127.0.0.1:*' });
websocket.on('连接',(套接字)=>{
//我在客户端连接时看到此日志
console.log('newclient connected')
socket.on('disconnect',()=>{
//当客户端断开连接时,我会看到此日志
log('客户端已断开连接');
});
})
//测试连接
emit('new-message',{message:'Connection done!!!'})
客户端
let io=require('socket.io客户端'))
让socket=io.connect('http://localhost:3000/api/chat/connect“,{path:'/api/chat/connect',reconnect:true,forceNew:true})
//在这里调试时,我注意到socket.connected==false
//意图1
socket.on('new-message',(数据)=>{
//这里什么也没发生
})
//意图2
socket.on('connect',function(){
//这里什么也没发生
socket.on('new-message',函数(数据){
//这里什么也没发生
});
});
//意图3
socket.on('new-message',(数据)=>{
//这里什么也没发生
})
socket.connect()
从客户端调用io.connect连接后,服务器将正确接收连接。但调试刚刚完成
io.connect
,我注意到
socket.connected==false

package.json-Server
{
“依赖项”:{
东西
“还原”:“4.1.x”,
“socket.io”:“^1.7.3”
东西
},
“发动机”:{
“节点”:“0.8.x”
}
}
package.json-客户端
{
东西
“依赖项”:{
“反应”:“^15.4.2”,
“react dom”:“^15.4.2”,
“react redux”:“^5.0.3”,
“反应路由器”:“^3.0.2”,
“redux”:“^3.6.0”,
“redux thunk”:“^2.2.0”,
socket.io客户端“^1.7.3”
},
东西
}

可能是名称空间缺少设置。为了解决这个问题,您需要在服务器端为路径“/api/chat/connect”设置一个自定义名称空间,如下所示:

在这里可以找到有关自定义名称空间的更多信息

运行服务器端代码时,请尝试在“DEBUG=socket.io*”前面加上前缀,以查看socket.io发出的日志

e、 g.在package.json脚本中

scripts:{
    start: "DEBUG=socket.io* node index.js",
    ...
}

它可能是命名空间缺少的设置。为了解决这个问题,您需要在服务器端为路径“/api/chat/connect”设置一个自定义名称空间,如下所示:

在这里可以找到有关自定义名称空间的更多信息

运行服务器端代码时,请尝试在“DEBUG=socket.io*”前面加上前缀,以查看socket.io发出的日志

e、 g.在package.json脚本中

scripts:{
    start: "DEBUG=socket.io* node index.js",
    ...
}