我想知道是否有可能使用node.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? 我意识到一个简单的解决scheme就是把所有的一切都在一个窗口中完成。 我使用快递/句柄。
您应该检查出Socket.io ,它可以在您的Node.js服务器和所有浏览您网页的浏览器客户端之间进行实时通信。
在你的特殊情况下,在窗口Bclosures之前,服务器应该用新的数据向客户端发送消息。 客户端代码将能够用新信息更新网页。
如果您正在寻找一个准系统解决scheme,请查看WebSockets API (哪个Socket.io摘要)。 如果你想使用一个为实时应用程序构build的完整框架,请查看Meteor (显然,这需要更多的代码修改)。
实际上你不需要在服务器上执行它。
据我所见,你的两个窗口在相同的主机/域(包括相同的端口和子域)上打开,
这意味着两个窗口都可以在客户端与另一方“交谈”。
windowB具有window.opener
属性。
所以在windowB中发生了什么,在任何时候你都可以告诉windowA发生了什么,就像这样。
在windowB中
window.opener.setData(myResult); // window.opener == windowA
要么
window.opener.myGlobalNamespaceObject.property = myResult
另一个解决scheme是使用cookies或localStorage。
实际上localStorage触发一个事件,当数据已经设置(见这个问题: localStorage eventHandler不会被调用 )
如果你不共享相同的域,请使用socket.io作为其他答案指出。