为了账号安全,请及时绑定邮箱和手机立即绑定

socket.io和node使用时,server端不能收到消息?

socket.io和node使用时,server端不能收到消息?

holdtom 2019-05-25 14:08:41
直接使用Socket.io官网上面的demo,代码是直接复制的,所用到的express,socket.io都已经安装,可client端不能将消息广播到server端,不知道是什么原因?server:varapp=require("http").createServer(handler);vario=require("socket.io")(app);varfs=require("fs");app.listen(8000);functionhandler(req,res){fs.readFile('index.html',function(err,data){if(err){res.writeHead(500);returnres.end('Errorloadingindex.html')}res.writeHead(200);res.end(data);});}//console.log('io',io);io.on('connection',function(socket){socket.emit('broadcastnews',{hello:'world'});//广播消息socket.on('listenclient',function(data){console.log("ccc",data);console.log("clientmessages",data);})//监听所有的客户端发来的消息})client:Socket.iosocket.iovarsocket=io('http://localhost');socket.on('news',function(data){console.log(data);socket.emit('myotherevent',{my:'data'});});
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

1.在客户端连接中,如楼上所说,你的客户端连接端口没有设置,当然连接不到服务
2.你的服务端socket发送的事件是'broadcastnews'监听的是'listenclient'
io.on('connection',function(socket){
socket.emit('broadcastnews',{hello:'world'});//广播消息
socket.on('listenclient',function(data){
console.log("ccc",data);
console.log("clientmessages",data);
})//监听所有的客户端发来的消息
})
而客户端监听的事件是'news'发送的是'myotherevent'...你告诉我该怎么监听好吧!
varsocket=io();
socket.on('news',function(data){
console.log(data);
socket.emit('myotherevent',{my:'data'});
});
官网文档明明给出的代码是:
io.on('connection',function(socket){
socket.emit('news',{hello:'world'});
socket.on('myotherevent',function(data){
console.log(data);
});
});
监听和发布都对不上...怎么会有处理?
                            
查看完整回答
反对 回复 2019-05-25
?
杨魅力

TA贡献1811条经验 获得超6个赞

varsocket=io('http://localhost');改成varsocket=io('http://localhost:8000');客户端端口应根据服务器的端口设置,保持一致
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 930 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信