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

Posted

技术标签:

【中文标题】如何通过 IP 地址连接 Firefox 扩展中的 websocket 客户端【英文标题】:How to connect a websocket client in a Firefox extension through an IP address 【发布时间】:2021-07-16 23:55:08 【问题描述】:

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

我使用安全的 websocket。我将证书添加到 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");
;

【问题讨论】:

【参考方案1】:

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

https://192.168.1.123:9501

【讨论】:

以上是关于如何通过 IP 地址连接 Firefox 扩展中的 websocket 客户端的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firefox 中屏蔽来自 WebRTC 的 IP 泄漏?

怎样判断一个IP地址是公网地址?

Firefox扩展程序,用于创建新图标或替换位置/地址栏中的现有图标

如何使用 IP 地址(通过 InetAddress)通过 JDBC 与 MySQL 建立连接?

如何通过IP地址来访问网站

通过IP地址与C#聊天程序。连接不同网络中的两台计算机