首页 > 解决方案 > 如何在基于 websocket 的应用程序中管理/使用 cookie?

问题描述

我的应用程序使用快速服务器来为单页应用程序提供服务,然后其余的通信由 websockets 处理。我的问题是,如果通过 HTTP 交互发送 cookie,我将如何管理它们?我不认为 websockets 真的是用来处理 cookie 的,但我需要使用 cookie 来做一些事情,比如记住登录。我是否需要或者最好继续使用 HTTP 处理涉及 cookie 的事情(并且让 HTTP 服务器在与我的 websocket 服务器不同的端口上运行)?还是有其他推荐的解决方案?

标签: httpcookieswebsocket

解决方案


Websockets 是一种通信协议,您来回发送数据就像发送 HTTP 应用程序数据的 TCP 协议一样。浏览器知道如何解释 HTTP 请求和响应,并从标头推断 cookie 数据。这是 cookie 标头的示例:Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; 现在,由于您通过 Websockets 传输数据,您需要做的就是告诉浏览器如何处理数据。

因此,为了在您的浏览器中设置一个 cookie,您将使用document.cookie = "username=John Doe"它在您的浏览器中设置一个密钥对 cookie 条目。

请参阅:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies

https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie


推荐阅读