0

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 が機能していません。

4

1 に答える 1