2017-04-20 37 views
2
  1. “socket.emit”不发送消息到发送它的客户端,而
  2. “socket.broadcast.emit”将消息发送到所有的客户端包括发件人。

我想不通我在这里失踪。 对于第二种情况,我检查socket.id在发送该消息,并记录它被接收到的响应的情况下,它被证明是相同的socket.emit不发射消息给发件人

socket.js

var socket = require('socket.io')(), 
socketApi = {}; 

socketApi.io = socket; 

socketApi.io.on('connection',(client) => { 
    client.on('clientMessage', (msg) => { 
     console.log('hi'); 
     client.emit('serverMessage',msg); 
    }) 
    client.on('disconnect',() => { 
     socketApi.io.emit('serverMessage','client is disconnected'); 
     console.log('disconnected'); 
    }) 
}) 


module.exports = socketApi; 

client.js

getServerResponse() { 
     socket.on('serverMessage',(msg) => { 
       console.log(msg); 
      }) 
    } 
+0

- 你叫'getServerResponse”功能? –

+0

是的...我使用SocketAPI.io.emit或client.broadcast.emit时得到响应 – sanket

+0

'client.on('clientMessage',(msg)=> {;'在这里做什么分号? –

回答

0

根据文档broadcast.emit发送给除发件人以外的所有人,emit仅发送给发件人:https://socket.io/docs/emit-cheatsheet/

我是在同样的问题,所以我结束了通话双方:

// socket.io server 
io.on('connection', socket => { 
    socket.on('message', (data) => { 
    messages.push(data) 
    socket.broadcast.emit('message', data) // sends to all except the sender 
    socket.emit('message', data) // sends to the sender 
    }) 
}) 
在`client.js`
相关问题