我正在使用Firefox 48,它應該對WebExtensions穩定。我已將我的測試應用程序與Socket.IO連接起來。一旦關閉彈出窗口,socket.IO連接就會中斷。下面是代碼:彈出關閉時Socket.IO連接斷開
的manifest.json
{
"manifest_version": 2,
"name": "myapp",
"version": "1.0",
"browser_action": {
"default_icon": {
"96": "button/icon.png"
},
"default_title": "myapp",
"default_popup": "popup/main.html"
}
"background": {
"scripts": ["myclient.js"]
}
}
main.html中
<body>
<script src="/scripts/socket.io.js"></script>
<script src="/scripts/jquery-2.2.4.min.js"></script>
<script src="/myclient.js"></script>
</body>
myclient.js
var address = "localhost";
var client = io("http://" + address + ":17001/");
client.on("message", function() {
$("#test").text("message");
});
我的服務器的NodeJS代碼
console.log("Server started");
var io = require("socket.io")(17001);
io.on("connection", function (socket) {
var address = socket.request.connection.remoteAddress;
console.log("Someone joined. Socket ID:", socket.id, address);
io.emit("message");
socket.on("disconnect", function() {
console.log("Someone disconnected!");
});
});
如何阻止連接斷開連接? TIA
編輯:也試圖與鉻相同的擴展,因爲我讀here Firefox不支持background
,但連接斷裂的問題仍然存在。
編輯2:更新我的代碼按安德魯說,仍然不能正常工作:
"background": {
"scripts": ["myclient.js", "/scripts/socket.io.js", "/scripts/jquery-2.2.4.min.js"],
"page": "bgp.html"
}
我也通過註釋scripts
線上嘗試了上面的代碼,仍然不能正常工作。
bgp.html
<!DOCTYPE html>
<html lang="en">
<body>
<script src="/scripts/socket.io.js"></script>
<script>
var address = "localhost";
var client = io("http://" + address + ":17001/");
</script>
</body>
</html>
如果我從myclient.js
刪除連接的創建,連接不發生在所有!這意味着bgp.html不起作用。
謝謝你的回覆,我更新了我的問題。不幸的是,連接不會被創建。 –
你有什麼解決方案嗎? –
你能發佈展示問題的擴展的完整代碼嗎? –