猿问

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

直接使用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.io
socket.io
holdtom
浏览 931回答 2
2回答

慕桂英546537

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);});});varsocket=io('http://localhost');socket.on('news',function(data){console.log(data);socket.emit('myotherevent',{my:'data'});});监听和发布都对不上...怎么会有处理?

杨魅力

varsocket=io('http://localhost');改成varsocket=io('http://localhost:8000');客户端端口应根据服务器的端口设置,保持一致
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答