gpt4 book ai didi

javascript - 是否可以像所有针对普通 HTTP 请求的示例一样在 Service Worker 中拦截和缓存 WebSocket 消息?

转载 作者:可可西里 更新时间:2023-11-01 01:50:28 24 4
gpt4 key购买 nike

我知道您可以从 Service Worker 本身内部创建 WebSocket 连接;我的问题更多的是,您是否可以像往常一样从您的应用程序使用 WebSocket,并让 Service Worker 拦截/缓存 WebSocket 请求,就像它对普通 HTTP 获取请求所做的那样?

这是一个拦截和缓存来自 Service Worker 的普通 HTTP 请求的示例。

self.addEventListener('fetch', function(event) {
// If a match isn't found in the cache, the response
// will look like a connection error
event.respondWith(caches.match(event.request));
});

如果我的所有请求都通过 WebSockets,我将如何设置 Service Worker?

最佳答案

Service Worker 不可能拦截 Web Socket 流量。

Service Worker 的 fetch 事件仅针对受控客户端的 HTTPS 请求触发,message 事件仅针对 postMessage() 触发客户的要求。

同时 there is an HTTP handshake启动 Web Socket 连接时,握手不会触发 fetch 处理程序,连接建立后发送的实际流量也不会触发。

关于javascript - 是否可以像所有针对普通 HTTP 请求的示例一样在 Service Worker 中拦截和缓存 WebSocket 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37741185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com