首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >socket.emit不向发件人发送消息

问socket.emit不向发件人发送消息
EN

Stack Overflow用户
提问于 2017-04-20 18:04:04
回答 1查看 1.4K关注 0票数 2
  1. 'socket.emit‘不向发送消息的客户端发送消息,而
  2. 'socket.broadcast.emit'向包括发件人在内的所有客户端发送消息。

我不知道我在这里错过了什么。对于第二种情况,我在发送消息时检查了socket.id,并在收到响应时将其记录在案,结果是相同的。

socket.js

代码语言:javascript
复制
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

代码语言:javascript
复制
getServerResponse() {
        socket.on('serverMessage',(msg) => {
                console.log(msg);
            })
    }
EN

回答 1

Stack Overflow用户

发布于 2017-08-30 13:43:56

根据文档,broadcast.emit发送给所有用户,但发送方除外,而emit只发送给发送方:https://socket.io/docs/emit-cheatsheet/。

我在同一问题上,所以我最后打电话给这两个:

代码语言:javascript
复制
// 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
  })
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43526759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档