我的网页加载了一个后台闪存,它将使用套接字连接到服务器。 如果用户打开我网站的多个窗口/选项卡,服务器将获得多个套接字连接。知道如何确保同一用户和同一浏览器仅连接一个套接字吗?
我正在考虑使用Javascript来监 window 口关闭事件,如果连接到服务器的窗口被关闭,其他窗口之一将尝试连接到服务器。但我找不到监听该事件的方法。
我也在考虑 Flash 的 LocalConnection,但找不到分配唯一连接名称并让其他 Flash 知道的方法。
最佳答案
您可以使用 LocalConnection 在 Flash 中完成此操作。
当电影加载时,尝试向某个 LocalConnection ID 发送测试消息。如果失败,则连接未打开,在这种情况下,您打开它来监听命令,然后通过套接字连接到服务器。
如果成功,则说明已经有一个连接到服务器的 SWF 正在运行。您可以将 SWF 通过 LocalConnection 获取的任何服务器请求发送到连接到服务器的请求。
如果您需要获取响应,则可能需要让其他 SWF 打开自己的本地连接(随机 ID),并将它们注册到连接到服务器的 SWF。
当连接的 SWF 关闭(窗口关闭)时,所有发送到该 LocalConnection 的操作都会失败。在这种情况下,您的其他 SWF 将开始出现错误。其中一个必须打开该连接并成为“主”SWF(第一个成功打开连接的)。
生命周期会有点奇怪,并且您可能需要处理很多极端情况以确保它保持健壮,但这是一种选择。但是,我注意到随着连接数量的增加,LocalConnection 可能会变得不可靠,因此您最好寻找不同的解决方案。
关于javascript - 使用 JavaScript/ActionScript 监视来自同一域的浏览器窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1031662/