设计实时Web应用程序

时间:2018-01-03 09:16:15

标签: javascript java websocket real-time xml-rpc

我们有一个实时应用程序,其中AppServer(用c / c ++编写)用于广播网络事件详细信息 (通常是几百到大约一千行,每秒大约40-50列)到用gtk编写的客户端GUI应用程序  使用XML / RPC通过网络,以及写入DB(在同一台机器或LAN上运行)。 95%的通信是从服务器到客户端。 它没有问题,工作正常。

我们必须将应用程序移植到Web上。在最初的尝试中,我们保持了C / C ++ app服务器的原样。现在我们将数据发送到java web 应用程序服务器通过xml / rpc。 Java服务器保持循环队列(最初保持小型的2000)并推送数据  通过websockets到客户端。在客户端,我们使用角度ui-grid来显示数据。

目前问题是浏览器无法以此频率处理此数据量 一段时间后(几个小时)变得反应迟钝。这是一个应该全天候运行的网络监控应用程序,虽然我们很少 用户,我们无法控制他们的机器配置(主要是低端/中端)。服务器(tomacat 8)运行在2 * 6核心,16 GB RAM上。

您能否提出改善浏览器性能的建议?我们甚至准备从头开始实施新的解决方案。 但我认为浏览器性能始终是瓶颈。

1 个答案:

答案 0 :(得分:0)

如果推送的数据在其他地方保留,则应该实现工作程序以定期清理浏览器数据。

例如,假设您每分钟推送1000条记录,并且浏览器在一小​​时内崩溃,您可以实现每半小时一次的工作,它会清理浏览器DOM以保持内存占用。最低。

要访问以前的数据,您应该实现API,用户可以在给定时间/数据周期内获取数据。

很难确定造成崩溃的原因,但IMO应该是一个沉重的DOM,浏览器在一段时间后无法处理。如果你能在崩溃时提供浏览器的详细报告,那就更好了。