将数据从WebSocket管道绑定到对象

时间:2018-07-17 13:45:48

标签: arrays reactjs websocket socket.io

我试图了解WebSocket的工作,为此,我选择了一个有关汇率和socket.io-client的API。这种情况很难描述,但我会尽力的。

从api中,我可以通过通常的休息请求获得最受欢迎的货币列表(事先我不知道它是什么货币),然后我订阅了api以接收有关这些货币的其他信息。 WebSocket向我返回字符串消息,并且我想以某种方式将它们构造为一个对象。

const socket = io("https://api-url-example.com/");

socket.emit('SubAdd', { subs: this.state.fsyms });
socket.on("m", message => {
  console.log(message.split("~"));
});

它返回给我包含大量数据的字符串消息,我想执行下一步:

  1. 根据返回的字符串创建数组(字符串中的数据以'〜'分隔, 所以我正在使用message.split("~"));输出的数组如下所示: ["5", "CCCAGG", "BTC", "1", "6709.7", "fe9"]
  2. 创建一个新对象(我们称其为currencyData),然后将WebSocket流中的数组作为对象推入他的对象,并在传入的数组key(2)值上过滤一个。例如:如果套接字向我返回有关BTC的数组,并且currencyData没有键为BTC的对象,我想将其推入其中,但是如果BTC对象已经存在,我要替换给他新的东西。

最后,我要获取以下类型的对象:

currencyData = { USD: {...},
                 BTC: {...},
                 EUR: {...} }

请帮助我,我应该如何解决这个问题,因为这通常是合理的,也许我不太了解WebSockets的概念并且做错了一切。

0 个答案:

没有答案