使用 Apache Thrift 在两个设备之间进行通信

Communicate between two devices using Apache Thrift

注意:我是网络开发和网络方面的初学者。

我的目标是创建一个 windows 控制台应用程序,它充当本地网络上的服务器,并在使用该服务器的同一网络上拥有任意数量的客户端。

我已经使用 Apache Thrift 并设法将控制台应用程序设置为服务器,并创建了一个充当客户端的 Unity3D 项目。 (Using this example code)

当我 运行 服务器和客户端在同一台设备上时它有效。

如果不在同一台设备上,即当我在 iPhone 上导出和构建统一项目时,如何让它工作?

据我所知,我需要在设置客户端时指定一个目标 IP 地址,但我不知道该怎么做。

  1. 您需要为服务器分配一个静态(私有)IP 地址。
  2. 将客户端的'localhost'换成私服的ip。
  3. 如果服务器和客户端共享同一个本地网络,基本上就足够了。

根据用例,另一种解决方案可能涉及 通信服务器 作为第三台机器。

特别是当涉及到两个以上的客户端时,后一种方法会非常方便:服务器不仅接管了管理各个客户端之间的通信的部分,这也使您能够做一些更强大的通信(想想多播等),如果需要的话。点对点很快成为大量客户的痛点。

唯一需要注意的是,Thrift 不支持推送消息,始终是客户端必须启动 RPC 交互。因此,您需要围绕该限制设计您的通信方案。


上述场景可能与 OP 用例不匹配。我想添加它有两个原因:(1) 为了完整起见 (2) 有利于未来正在寻找它的读者。