如何使用Node.js和WS处理Websocket中的会议室切换

时间:2019-05-03 08:08:45

标签: node.js typescript websocket

我正在尝试实现一种方法,该方法允许将消息广播到“房间”。我当前的实现是

import * as ws from 'ws';

interface Connections {
  [room: string]: ws[]
}

interface Message {
  broadcastToRoom: string;
  payload: any;
}

根据您所走的路线在客户端确定房间。从该路由发送的每个消息都将具有Message结构。

我的问题是,当客户端切换房间时,如何使用服务器上的连接更新对象。到目前为止,我已经提出了这个方案,该方案将ws的副本保留在客户去过的每个房间中。

let connections: Connections = {};

// handle case when it is initially undefined
if (!connections[message.broadcastTo]) {
  connections = {
    ...connections,
    [result.broadcastToRoom]: [ws]
  };
} else {
  connections = {
    ...connections,
    [result.broadcastToRoom]: [...connections[result.broadcastTo], ws]
  };
}

0 个答案:

没有答案