我有一个简单的单页应用程序,使用jetty websockets进行服务器和客户端之间的通信。
问题: 每次重新加载页面时,我的websocket连接都会被禁用,而new会被初始化。问题是用户应该重新刷新每个页面刷新。
问题: 如何在页面刷新时消除重新登录的需要?
已编辑 面对下一个问题:如何决定何时删除会话?我在服务器端有一个对等对象,除了websocket会话容器之外别无其他。 Peer在onClose
方法上被删除,而{1}}方法又在删除客户端websocket上调用。问题出现了:当用户按下F5 - >客户端websocket被破坏 - >服务器删除适当的websocket - >客户端尝试重新加载页面并检查是否有任何会话并且找不到任何内容。另一方面,我根本不能停止删除同伴(会话)。
问题:如何判断服务器何时删除我的同伴?
答案 0 :(得分:7)
为了消除在每个新连接建立时验证WebSocket连接的需要,您可以使用cookie。
首次验证WebSocket连接,在WebSocket连接上设置cookie ,并在新连接时重新检查cookie。
这需要一个允许在WebSocket连接上读取和设置cookie的WebSocket服务器。
如果WebSocket连接的源自与包含打开WebSocket连接的JavaScript的HTML页面相同的源,则您还可以使用“普通”基于HTML表单的登录加cookie过程: