我正在建立一个服务器到多个侦听器的应用程序,其中服务器有一个"主列表"每秒更改很多次,并且这些更新需要流式传输到连接的客户端,以便它们可以保持与服务器相同的状态。
该列表包含定价数据,代表资产交换的订单簿,如下所示:
[[1.0, 0.002], [1.1, 1.2039], [1.2, 0.29183]]
...第一个值是价格,第二个是金额。
这个想法是客户端在第一次连接时(或通过其他一些旁道)收到完整列表,然后在流式传输时逐步应用这些更改。
有没有做这种事情的模式?效率在这里很重要(但在正确性方面排名第二),因此最好将传输的数据量保持在最低水平。
编辑:我对传输层不感兴趣,对数据层更感兴趣,如何构建增量格式等等。
答案 0 :(得分:0)
乍一看,我的直觉就是Observer Pattern
。来自维基百科:
观察者模式是一种软件设计模式,其中一个称为主体的对象维护其依赖者列表,称为观察者,并通常通过调用其中一种方法自动通知它们任何状态变化。
在您的情况下,Master List
是Subject
而您的Connected Clients
是Listeners
。每次Subject
更新时,它都会通知Listeners
发生了更改。这可以像CRUD命令一样简单,以便将数据传输保持在最低限度。
警告 - 据了解Observer Pattern
时,Listeners
会导致问题。
观察者模式维基百科链接:https://en.wikipedia.org/wiki/Observer_pattern