以JSON格式部分加载大量数据

时间:2016-09-16 07:56:18

标签: database algorithm asp.net-web-api chat high-availability

我有一项任务,有必要实施部分数据下载。我需要实现与Periscope App中实现的类似的东西。

目前我有什么: 通过websockets实现数据传输。通过存储在服务器数据库上的websockets发送的所有数据。 问题是服务器在一分钟内采集的数据最多可达1 MB,20分钟的数据可累积20 mb! 然后这些数据应该发送给另一个客户端,但几个小时后,就是它不是实时的。

我开始寻找此机制的大致实现,但发现只有从服务器按日期范围和条目数量的有限下载。即: startDate =和endDate =,length = 100,skip = 10.此解决方案不合适,因为我可以在100MB(例如)数据上发送这段时间(或数字)。

我看了它是如何在Periscope App上实现的,它们运行查询:

第一次查询:

POST https://url/k=<room>/chatapi/v1/history HTTP/1.1
User-Agent: ChatMan/1 (Android) tv.periscope.android/1.6 (1900249)
Content-Type: application/json; charset=UTF-8
Content-Length: 230
Host: prod-chatman-ancillary-us-east-1.periscope.tv
Connection: Keep-Alive
Accept-Encoding: gzip

{"access_token":"<hidden>","cursor":"","limit":1000,"since":0}

作为回应,应用程序会收到聊天的第一个数据。

{cursor:"1473988864446290384",messages:[<largeData>]}

依旧逐包。

然后应用程序从数据变量&#34; cursor&#34;中获取。并使用变量&#34; cursor&#34;

发出第二个请求
{"access_token":"<hidden>","cursor":"1473988823917918518","limit":1000,"since":1473988823694000000}

作为生成的变量&#34; cursor&#34;和&#34;自&#34;我不知道,也许你知道吗? 值得注意的是,当我在应用程序中进行倒带时,我得到了一个不同的值&#34;因为&#34;,它在应用程序中生成。当收到数据&#34;光标&#34;与我在广播时等待满载后立即收到的数据有不同的含义。因此,我假设对于每个请求,服务器为每个客户端创建消息包。 有点像使用Pubnub实现的聊天,但我可能是错的。

我希望得到专家的帮助。服务器将高负荷,所以我想最相关的潜望镜和最佳决定。 如果您能说出可以安排Periscope聊天的故事,我会很高兴。

编程语言并不重要。

0 个答案:

没有答案