【问题标题】:Connect two devices with websockets使用 websocket 连接两个设备
【发布时间】:2018-05-18 09:12:03
【问题描述】:

我是 websockets 的新手,如果我的问题的答案太明显,请见谅。

我正在使用websocket-sharp,因为我的目标是构建一个连接到服务器的 Unity3D 客户端。 (其实我是想为webGL平台搭建,所以客户端会用javascript写)。目前,客户端和服务器都是用 C# 编写的。

在本地主机上编译时,它可以完美运行,也可以与多个客户端一起使用,也可以通过使用自签名证书的安全连接。如果客户端连接到回显服务器(ws://echo.websocket.org),它也可以正常工作。

所以我继续前进并尝试连接我的两台计算机。这个想法是在 linux 上运行服务器并在 mac 上执行客户端,所以我用“localhost”代替了客户端和服务器代码上的 linux IP。当我执行它时,Unity(客户端)一直说我“不是本地 IP 地址”并且它没有连接。

我认为这可能是防火墙问题,首先我应该打开使用的端口...是这样吗?如果是这样,我怎样才能在 mac 和 linux 上打开一个具体的端口?

【问题讨论】:

    标签: c# unity3d websocket websocket-sharp


    【解决方案1】:

    检查绑定。

    WebSocketServer(System.Net.IPAddress.Any, 端口);

    测试是否可以连接到 ip:port。

    iptables -L 用于列出 Linux 中配置的规则。

    【讨论】:

    • 我使用的是 WebSocketServer(System.Net.IPAddress.Parse("linux local ip"), port);如果我使用 IPAddress.Any,unity 会说“错误 CS0122: `System.Net.IPAddress.Any' 由于其保护级别而无法访问”
    【解决方案2】:

    终于解决了。这是服务器代码的问题,我不知道错误在哪里。我没有使用我的 c# 服务器,而是使用了 Node.js,它运行良好。我可以毫无问题地从其他计算机连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 2019-01-17
      • 2018-04-08
      • 1970-01-01
      相关资源
      最近更新 更多