首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >远程Socket.io连接无法从清单v3扩展运行

远程Socket.io连接无法从清单v3扩展运行
EN

Stack Overflow用户
提问于 2022-10-21 23:49:28
回答 1查看 48关注 0票数 0

我已经使用nodejs、express和socket.io设置了一个小型服务器,并为chrome扩展设置了一个后台脚本,该脚本在加载时应该连接到socket.io服务器,但不会成功连接。我知道服务器可以工作,我很确定我使用的cdn可以工作,但是它不会连接。

清单:

代码语言:javascript
运行
复制
{
    "manifest_version": 3,
    "name": "whatevernevermind",
    "description": "Base Level Extension",
    "version": "1.0",
    "action": {
      "default_popup": "index.html"
    },
    "background": {    
        "service_worker": "content.js",
        "type": "module"
    }
}

服务器端:

代码语言:javascript
运行
复制
const express = require('express');
const app = express();
const http = require('http');
const path = require('path');
const { Server } = require("socket.io");
const server = http.createServer(app);
const io=new Server(server)
app.get('/', (req, res) => {
  res.sendFile(path.join(__dirname+"/test.html"))
});
io.on('connection', socket=>{
    console.log('connection')
    socket.emit('test')
})
server.listen(8000, '0.0.0.0', () => {
  console.log('listening on http://localhost:8000');
});

背景剧本:

代码语言:javascript
运行
复制
import { io } from "https://cdn.socket.io/4.3.2/socket.io.esm.min.js"

var socket=io('http://localhost:8000/')
console.log('success')
socket.on('test', ()=>{
    console.log('hi')
})

我尝试过使用io.connect(),但是得到了相同的结果,除了一个Event handler of 'beforeunload' event must be added on the initial evaluation of worker script.警告之外,我没有得到一个错误

EN

Stack Overflow用户

发布于 2022-10-22 00:54:50

作为一种解决办法,fetch API似乎是可用的。

background.js

代码语言:javascript
运行
复制
const url = "http://localhost:8000/";

fetch(url, {
  method: "GET",
  mode: "cors"
})
  .then(response => {
    if (response.ok) {
      return response.text();
    }
    throw new Error("Response was not ok.");
  })
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.log(error);
  })

manifest.json

代码语言:javascript
运行
复制
{
  "name": "hoge",
  "version": "1.0",
  "manifest_version": 3,
  "host_permissions": [
    "<all_urls>"
  ],
  "background": {
    "service_worker": "background.js"
  }
}
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74160114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档