我在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连接。但是,一旦关闭弹出窗口,就会在服务器控制台上打印一条消息,指出“ Web套接字已关闭。
我有以下问题-
我应该在content.js中建立WebSocket连接吗?
每个打开的网页都会有不同的WebSocket吗?
有什么办法可以将WebSocket对象保存在background.js中?
在Chrome扩展程序中实现Web套接字的最佳做法是什么?
提前致谢!
最佳答案
欢呼!
我通过修改manifest.json
解决了这个问题
{
...
"background": {
...
"persistent": true
},
...
}
关于google-chrome-extension - 在Chrome扩展程序中实现WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48746426/