在chrome扩展中实现websocket

2024-02-15

我正在 chrome 扩展中实现 WebSocket。

我在background.js中编写了代码

var websocket;
function createWebSocketConnection() {

    if('WebSocket' in window){
        websocket = new WebSocket(host);
        console.log("======== websocket ===========", websocket);

        websocket.onopen = function() {
            websocket.send("Hello");
        };

        websocket.onmessage = function (event) {
            var received_msg = JSON.parse(event.data);
            var notificationOptions = {
                type: "basic",
                title: received_msg.title,
                message: received_msg.message,
                iconUrl: "extension-icon.png"
            }
            chrome.notifications.create("", notificationOptions);
        };

        websocket.onclose = function() { alert("==== web socket closed 
======"); };
}

当我打开弹出屏幕(index.html)时,该方法createWebSocketConnection()被调用,这将创建一个 WebSocket 连接。

但是,一旦弹出窗口关闭,就会在屏幕上打印一条消息服务器控制台 that "Web 套接字已关闭.

我有以下问题-

  1. 我应该在 content.js 中建立 WebSocket 连接吗?
  2. 每个打开的网页都会有不同的WebSocket吗?
  3. 有什么方法可以将WebSocket对象保存在background.js中吗?
  4. 在 Chrome 扩展中实现 Web 套接字的最佳实践是什么?

提前致谢!


Hurray!

我通过修改解决了这个问题manifest.json

{
...
  "background": {
    ...
    "persistent": true
  },
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在chrome扩展中实现websocket 的相关文章

随机推荐