我想知道是否可以使用node.js在Windows之间发送数据

时间:2013-11-15 09:58:40

标签: javascript node.js express handlebars.js

我的目标是让方案如下:

1) User opens myapp.com in Window A
2) User clicks button which opens myapp.com/doWork in Window B
3) After performing some operations and retrieving data (requiring user input), Window B closes
4) Window A displays the data retrieved from Window B

使用node.js可以吗?我意识到更简单的解决方案就是在一个窗口中完成所有操作。我正在使用快递/把手。

2 个答案:

答案 0 :(得分:2)

您应该查看Socket.io,它可以启用Node.js服务器与打开网页的所有浏览器客户端之间的实时通信。

在您的特定情况下,在窗口B关闭之前,服务器应使用新数据向客户端发送消息。然后,客户端代码将能够使用新信息更新网页。

如果您正在寻找准系统解决方案,请查看WebSockets API(Socket.io摘要)。如果您想使用为实时应用程序构建的完整框架,请查看Meteor(显然需要更多代码修改)。

答案 1 :(得分:1)

实际上你不需要在服务器上这样做 据我所知,你的两个窗口都在同一主机/域上打开(包括相同的端口和子域)

这意味着两个窗口都可以在客户端与对方“交谈” windowB具有window.opener属性。

所以在windowB中发生的事情,在任何时候你都可以告诉windowA发生了什么,就像这样。

windowB

中的

window.opener.setData(myResult); // window.opener == windowA

window.opener.myGlobalNamespaceObject.property = myResult

另一种解决方案是使用cookies或localStorage 实际上,localStorage会在设置数据时触发事件(请参阅此问题:localStorage eventHandler Doesn't Get Called

如果您不共享同一个域,请使用socket.io,其他答案指出。