我正在开发一个Progressive Web App,它使用.manifest文件来缓存客户端上的所有文件。我修改了socket.io chat示例,可以在这里找到:
https://github.com/socketio/chat-example
我的修改可以在这里找到:
https://github.com/TennisVisuals/socket.io.manifest.errors
客户端代码的第一个更改是:
一切都按预期工作。
但第二次改变:
<html>
已替换为<html manifest="index.manifest">
应用程序失败,在Javascript控制台中出现此错误:
http://localhost:3000/socket.io/?EIO=3&transport=polling&t=Lij1LRo net::ERR_FAILED
初始修复
我已经能够通过添加以下行来使其在本地工作:
enter var connectionOptions = {
"force new connection" : true,
"reconnectionAttempts": "Infinity",
"timeout" : 10000,
};
var socket = io(connectionOptions);
Cloudflare和Nginx
但是当我使用Cloudflare和Nginx时,我现在看到了更奇怪的行为。
没有清单声明我收到错误,但一切仍然有效!
socket.io-1.7.2.js:7370 WebSocket connection to 'wss://hiveeye.net/socket.io/?EIO=3&transport=websocket&sid=rM2LKvCGJwaFx7RrAAAf' failed: Error during WebSocket handshake: Unexpected response code: 400
添加清单声明后,它只运行一次,然后失败并出现以下错误:
socket.io-1.7.2.js:4948 GET https://hiveeye.net/socket.io/?EIO=3&transport=polling&t=Lik5SC5&sid=rM2LKvCGJwaFx7RrAAAf net::ERR_FAILED
GET https://hiveeye.net/socket.io/?EIO=3&transport=polling&t=Lik5STN net::ERR_FAILED
GET https://hiveeye.net/socket.io/?EIO=3&transport=polling&t=Lik5STN net::ERR_FAILED
我怀疑如果我在没有清单的情况下运行时可以获得最初的错误消失,那可能会有所帮助......但是我一直无法找到任何东西来帮助我解决这个问题...
答案 0 :(得分:0)
好的,一旦我发现如何提出正确的问题,这真的很简单
添加:
NETWORK:
*
清单文件底部的使一切正常。
是的,&#34;应用缓存&#34;已弃用: https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache
但我还是想让它发挥作用!!