如何通过 IP 地址连接 Firefox 扩展中的 websocket 客户端

How to connect a websocket client in a Firefox extension through an IP address

我有一个 Firefox 扩展,它创建一个 websocket 客户端并向服务器发送消息。分机和服务器在同一个系统上。如果我使用 local,websocket 会连接到服务器。如果使用接口的IP地址,客户端将无法连接到服务器。作为我可以连接 IP 地址的证明,我有其他客户端和服务器应用程序,它们通过带有 IP 地址的原始套接字相互连接,服务器接收消息。

我使用安全的网络套接字。我将证书添加到 Firefox 的证书管理器中。

我不确定问题是我的地址格式不正确还是扩展清单中缺少权限。

manifest.json:

{
  "description": "weblogging app",
  "manifest_version": 2,
  "name": "weblogger",
  "version": "1.0",

  "browser_specific_settings": {
    "gecko": {
      "id": "browser_logger@example.org",
      "strict_min_version": "50.0"
    }
  },

  "background": {
    "scripts": ["background.js"]
  },

  "permissions": []
}

background.js:

var websocketArguments = 'wss://192.168.1.123:9501';
var webSocket;
createWebsocket();

function onError(error)
{
   console.log(`Error: ${error}`);
}

function createWebsocket()
{
   webSocket = new WebSocket(websocketArguments);
   webSocket.onerror = onWebSocketError;
   webSocket.onopen = onWebSocketOpen;
}

function onWebSocketError(event)
{
   console.log("WebSocket error observed:", event);
};

function onWebSocketOpen(event)
{
   console.log("WebSocket open: ", webSocket.readyState);
   webSocket.send("hello");
};

正如我在 post 中所说,我已将 SSL 证书添加到 Firefox 管理器。我遵循了 this post's 的建议:我使用 Firefox 浏览到 websocket 服务器地址的 https 并允许安全例外。 Websocket 现已连接。

https://192.168.1.123:9501