我已经建立了一个网络应用程序。我使用Websockets发送和接收大量数据,每次我必须打开和关闭Websocket连接。
为什么不避免不断开/关?如何加载页面,创建和打开Websockets并且它们永远不会关闭,所以我使用相同的Websockets发送和接收文本,数组,链接,搜索查询等。我甚至考虑传输图像和/或视频等文件通过Websockets。
我可以这样做,还是在完成后我必须关闭WS连接?永远不会关闭WS会引发安全问题吗?另外,我不知道当用户离开页面时WS是否会实际关闭。如果没有,我猜这是另一个安全问题,就在那里。
如何通过WS传输文件?我无法想象如何做到这一点
提前致谢
答案 0 :(得分:0)
Websockets意味着在网页或SPA的生命周期内保持开放......这完全是预期的正常行为。
服务器可能随时关闭websocket,这也是正常行为 - 只需重新打开websocket。
通常,如果websocket闲置一段时间(即Heroku将超时限制设置为50秒)或者出于流量和并发考虑,服务器将仅关闭websocket。否则,websocket连接可能一直保持打开状态。
例如,Plezi framework(Ruby)每隔一段时间自动发送一个乒乓框架,因此除非浏览器关闭套接字(通常是退出页面),否则连接将无限期地保持打开状态。