may*_*iya 5 sockets google-chrome service-worker
我正在开发一个简单的扩展,我想在其中显示RealTime通过 Web 套接字连接从我的服务器发送的数据。
我正在使用 chrome 的清单 v3 来实现这一点。我尝试将我的扩展与 Web 套接字连接,通过background.js它作为服务工作者在 chrome 后台运行。
我们无法访问windowService Worker JS(background.js) 中的对象,甚至无法在后台 JS 中添加更多脚本。我从上周开始就读到了这一问题,但仍然没有找到任何解决方案。
有谁知道如何在 Service Worker jS(background.js) 中连接 Web 套接字,以便服务器可以将数据发送到扩展。
任何小小的帮助都会对我有很大帮助。请帮我。
小智 1
我自己也在寻找 WebSocket 的解决方案。
但是,您还提到无法将更多脚本添加到服务工作线程background.js。有一个解决方案;服务人员有一个importScripts()功能(顺便说一句,它在文档/窗口中不可用)。下面是一些例子:
//// Single Script
let scriptURL = '/js/otherScript.js';
try {
importScripts(scriptURL);
} catch (e) {
console.error('Error Loading Script', scriptURL);
console.error(e);
}
Run Code Online (Sandbox Code Playgroud)
//// Multiple Scripts, Easy Way; Limited error detail
let scripts = [ '/js/script1.js', '/js/script2.js', '/js/script3.js' ];
try {
importScripts(scripts);
} catch (e) {
console.error(e);
}
Run Code Online (Sandbox Code Playgroud)
//// Multiple Scripts, Manual foreach; More error detail
let scripts = [ '/js/script1.js', '/js/script2.js', '/js/script3.js' ];
let continueImport = true;
scripts.forEach(function(scriptURL) {
if (continueImport) {
try {
importScripts(scriptURL);
} catch (e) {
console.error('Error Loading Script', scriptURL);
console.error(e);
continueImport = false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
608 次 |
| 最近记录: |