Aid*_*ell 10 html javascript websocket server-sent-events
在 JavaScript 中使用 EventSource API 时,有没有办法将请求正文与发起轮询的 HTTP 请求一起发送?
我需要在 SSE 请求时向服务器发送大量 JSON,以便服务器可以计算要发送给客户端的事件。当我不需要它时使用网络套接字或者使用 cookie 或多个请求做奇怪的事情似乎很愚蠢。
我担心如果我将数据捆绑到查询字符串中,我会遇到查询字符串的长度限制,这可能是。
提前致谢!
初始 SSE 请求是一个相当普通的 HTTP GET 请求,因此:
请参阅: 不同浏览器中 URL 的最大长度是多少?, Android的WebView.loadUrl方法对Url的长度有限制吗?, http://www.benzado.com/blog/post/28/iphone-openurl-limit
您还可以将信息存储在一个或多个 cookie 中,这些信息将与 GET 请求一起发送。这可能包括您在使用 SSE 的页面请求中设置的 cookie,或者您在 javascript 中设置的 cookie(在创建EventSource对象之前)。cookie 的最大大小被指定为至少 4096 字节(这是整个 cookie,因此对于实际数据部分来说要小一些),每个主机名至少支持 20 个 cookie。经验测试似乎证实了这一点:http://browsercookielimits.x64.me/最坏的情况下,您可能会将信息分块到多个 cookie 中。
比这个大,我认为您需要一个初始请求来上传 JSON 并发送回 SSE 请求引用的 ID。
在技术上是可行的,但(强烈)不鼓励使用 GET 请求发送正文。请参阅带有请求正文的 HTTP GET。EventSource 构造函数仅接受 URL,因此不直接支持这一点。
正如 dandavis 指出的,您可以压缩 JSON。
| 归档时间: |
|
| 查看次数: |
5993 次 |
| 最近记录: |