【问题标题】:how to use unity and websockets如何使用统一和 websockets
【发布时间】:2022-01-11 08:01:42
【问题描述】:

大家好,我正在使用 websocketsharp 构建统一的 webGL,https://github.com/sta/websocket-sharp

奇怪的是,当我从客户端运行它时它工作正常,我可以使用 nodeJS 发送和接收消息,但是当我将构建上传到我的服务器时,当我尝试连接到服务器时出现此错误

2021 年 12 月 5 日下午 6:53:40|致命|.|System.Net.Sockets.SocketException (0x80004005):无法解析主机“mydomain.io” Desktop.loader.js:1 at System.Net.Dns.Error_11001 (System.String hostName) [0x00000] in :0

这是我在 C# 中的连接方式

ws = new WebSocket("wss://mydomain.io:8000"); ws.SetProxy("https://mydomain.io/server", "", "");

我不知道如何调试它。为什么它可以在统一编辑器中工作,但在我上传到服务器时却不行? websocketssharp 是与 nodeJS 服务器通信的最佳方式吗?

【问题讨论】:

  • 如果您拥有此域,请为其配置您的 dns 提供商。

标签: node.js unity3d websocket


【解决方案1】:

据我所知,WebSocket 和网络.Net / c# 类不是supported in WebGL。您需要在JavaScript 端进行网络连接或使用UnityWebRequest


尤其是您正在使用的链接资产

它适用于 Unity Free,但有一些限制:

  • Webplayer 的安全沙箱(该服务器在 Web Player 中不可用)
  • WebGL 网络(在 WebGL 中不可用)

为什么它可以在统一编辑器中工作,但在我上传到服务器时却不行?

-> 因为在 Unity 编辑器中,您仍在完全支持这些类的独立 PC 上执行预编译的 .Net 代码。在您实际构建项目之前,它不会编译成 WebGL

【讨论】:

  • 谢谢 derHugo。对于其他有同样问题的人,我发现了这个github.com/endel/NativeWebSocket,效果很好!无需安装包或任何东西,只需将文件复制到您的项目中。我什至不必设置代理,它开箱即用
猜你喜欢
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-08
相关资源
最近更新 更多