【发布时间】:2019-01-22 08:05:24
【问题描述】:
我对 websockets 以及如何区分它发送的不同数据感到好奇。我也无法在网上找到任何清晰的东西,除非我错过了一些盯着我看的东西。
我有一个 websocket,握手建立了连接。 ws 的目的是提供实时足球比分和实时表格。
因此,如果它是一个休息 API,我可能会有 2 个端点,/live-scores 和 /table。我的反应组件对不同的数据感兴趣,所以我想知道网络套接字中是否有等效的端点?或者你如何区分不同的数据?每条数据都应该有一个单独的网络套接字吗?
另外,请记住,除了实时比分和表格之外,还会有超过 2 条数据,所以我认为每个不同的 ws 将是矫枉过正的。
谁能指出我正确的方向或在这里提供答案?
TLDR 您是为每组不同的数据创建一个 websocket(因为需要更好的描述方式)还是只有一个 websocket,如果有,什么是客户端的最佳方式来区分它正在接收什么样的数据?
如果这个问题没有意义,请告诉我,我会尽量让问题更清楚。
我的起始代码在这里:
import sockjs from 'sockjs';
const ws = sockjs.createServer({
sockjs_url: 'http://cdn.jsdelivr.net/sockjs/1.0.1/sockjs.min.js',
});
ws.on('connection', connection => {
connection.on('data', m => {
const message = m ? JSON.parse(m) : {};
if (message.type === 'register') {
connection.write(
JSON.stringify({
address: message.address,
body: {
message: 'Hello World!',
},
})
);
}
});
});
export default ws;
【问题讨论】:
-
您已经在使用
message.type来区分多种类型的消息。只需使用它来区分分数更新和表格更新! -
好的,很酷,那么
message.type应该使用什么?谢谢!
标签: javascript ecmascript-6 websocket