漫长过程后的HTTP响应

时间:2015-09-29 22:19:01

标签: angularjs node.js sockets

当前项目在带有Expressjs框架的Node.js中。我们有一个带有客户端/潜在客户信息的应用程序,允许经过身份验证的用户修改数据库并在服务器上启动长时间运行的进程。例如,打印30 pg文档可能只是一个过程。

应用程序用户需要两件事:

  1. 流程开始时的回复。
  2. 流程结束时的响应(通知)。
  3. 我们目前通过确保流程开始,然后res.json({msg: 'Process Started']);返回Angular前端,以标准快递方式处理需求#1。需求#2目前通过电子邮件发送给用户,该用户通过流程状态报告启动了流程。

    我想改善我们如何处理需求#2。具体来说,我想向用户发送一个JSON字符串以显示在界面中。

    问题

    1. 是否可以通过HTTP执行此操作?
    2. 此功能是否存在于Express或众所周知的中间件中。
    3. 假设1& 2是假的。我的解决方案是运行TCP套接字服务器以维护包含所需用户的套接字。当进程结束时,将向具有状态更新的用户发送消息。任何人都可以评论我的解决方案提出的问题吗?

1 个答案:

答案 0 :(得分:0)

到1和2.基本上你要在这里实现的是从服务器推送到客户端。这样做的需要在Web应用程序中非常普遍,并且多年来已经有各种各样的花式名称解决方案。您可能希望阅读CometLong-pollingWebsocketsmain.c:20:12: warning: ‘gcroot’ attribute directive ignored [-Wattributes] struct C __attribute__((gcroot)) *garbage = new_C(0);

对于您的节点应用程序,请查看socket.io。简而言之,该框架的作用是将Ajax,Websockets等的复杂性抽象为单个API。换句话说,socket.io为您提供节点应用程序和前端之间的双向通信。