首页 > 解决方案 > 向所有人显示消息“用户正在输入...”,包括发件人,如果我正在输入消息,VUE JS 和 socket.io

问题描述

我在我的应用程序中使用 vuejs 和 socket.io。任务是这样的:如果我在与用户的对话中键入一条消息,则向对话者和我自己显示一条消息,即我正在键入一条消息。我该如何实施?

标签: socketsvue.jssocket.io

解决方案


Socket.io 为您提供了很多选项来全面发送消息。我一直觉得非常有用的是Emit cheatsheet来自官方文档(https://socket.io/docs/emit-cheatsheet/)。

以下是一些关于如何向包括发送者在内的所有客户端广播消息的方法。

io.on('connect', onConnect);

function onConnect(socket) {

  // sending to all clients in 'chat' room, including sender
  io.in('chat').emit('typing', 'User xy is typing');

  // sending to all clients in namespace 'chatNamespace', including sender
  io.of('chatNamespace').emit('typing', 'User xy is typing');

  // sending to a specific room in a specific namespace, including sender
  io.of('chatNamespace').to('chat').emit('typing', 'User xy is typing');

}

现在这当然只是示例方法。您需要将其包装到您自己的业务逻辑中,并可能注册一些套接字事件侦听器来实现这一点。


推荐阅读