我正在使用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不起作用。
谢谢你的回复,我更新了我的问题。不幸的是,连接不会被创建。 –
你有什么解决方案吗? –
你能发布展示问题的扩展的完整代码吗? –