我正在从事一个由Web fontend和后台服务组成的项目。 用户可以访问Web前端,并且应该与后台服务进行通信,该后台服务是用C ++编写的,并且可以在(将来可能有多个)另一台计算机上运行。
仅供参考:后台服务器(以后称为“后端”)的行为类似于http服务器,并侦听特定端口上的传入请求。
到目前为止,前端使用简单的http请求(包含xml或json格式的数据)将命令发送到后端。
好吧,现在这是我的问题:由于用户在前端输入数据,因此前端希望后端提供一些数据以将其显示给用户或在我们的数据库内部使用。
您能推荐任何方法来处理从后端到前端的数据发送吗?
我当前的想法:后端在启动时获得一个链接,一种pingback url,如果有任何数据可以返回到前端,则可以调用该链接。 被调用的文件将输入的数据输入某个位置以存储,例如,内存缓存或仅内存数据库。 我打算用javascript编写前端,也许使用诸如Ember.js或Angular.js之类的框架,该框架可以在内部自动处理此类数据更新。 无论哪种方式,它都应使用尽可能少的资源来尽可能实时地更新前端。
我当前的方法行得通还是纯粹是愚蠢的?
因此,总的来说:您能否给我一些技巧,以改善上述方案,或者建议其他方法来实现这一目标?
我已经用谷歌搜索过,但是我发现的只是设计Javascript前端<-> C ++后端通信 ,但是他只想将后端安装在同一台机器上,但我有不同的机器。
编辑:我忘记了最重要的细节(或者我在想):当前只有一个后端实例可以处理很多客户。 前端上的每个用户都有至少一个与客户端管理器(后端)相关联的客户端。 因此,管理器可能会返回很多数据。
这里真正的问题(或者至少我认为这是最大的问题)是我应该如何将返回的数据分发给每个客户端。
Padmak
有两种处理从后端向前端发送数据的好方法。
客户端每隔一定的时间间隔轮询一次后端,这是很常见的做法,但是如果您要进行一百万次回调,则效率极低
使用websockets, http://en.wikipedia.org/wiki/WebSocket
我不太熟悉C ++作为后端Web服务,但是如果您正在侦听端口并处理url(通过某种类型的控制器?),那么ajax将是最好的解决方案,您可以设置一个url以将数据发布到前端并从您的服务返回数据。 我注意到您添加了angular.js和ember.js作为标签。
如果您使用它们,它们都有使用ajax的出色框架,不确定是否使用ember,但是angular.js使用“资源”,值得在Google搜索中使用。
希望我能正确理解您的要求。
另外,如果您使用的是angular并希望获得实时的感觉,则应该查看模型和数据绑定以及$ watch方法。 您可以在前端上的输入立即更改后发送ajax调用,但是,您将需要添加某种超时方式,这样您就不会不断向后端发送请求。