WebExtensions で安定しているはずの Firefox 48 を使用しています。テスト アプリを Socket.IO に接続しました。ポップアップを閉じるとすぐに、socket.IO 接続が切断されます。コードは次のとおりです。
マニフェスト.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!");
});
});
接続が切断されないようにするにはどうすればよいですか? ティア
編集: Firefoxがサポートしていないことをここで読んだので、chromeでも同じ拡張機能を試しましたがbackground
、接続切断の問題は解決しません。
EDIT 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 が機能していません。