使用 Apache Thrift 在两个设备之间进行通信
Communicate between two devices using Apache Thrift
注意:我是网络开发和网络方面的初学者。
我的目标是创建一个 windows 控制台应用程序,它充当本地网络上的服务器,并在使用该服务器的同一网络上拥有任意数量的客户端。
我已经使用 Apache Thrift 并设法将控制台应用程序设置为服务器,并创建了一个充当客户端的 Unity3D 项目。 (Using this example code)
当我 运行 服务器和客户端在同一台设备上时它有效。
如果不在同一台设备上,即当我在 iPhone 上导出和构建统一项目时,如何让它工作?
据我所知,我需要在设置客户端时指定一个目标 IP 地址,但我不知道该怎么做。
- 您需要为服务器分配一个静态(私有)IP 地址。
- 将客户端的'localhost'换成私服的ip。
- 如果服务器和客户端共享同一个本地网络,基本上就足够了。
根据用例,另一种解决方案可能涉及 通信服务器 作为第三台机器。
特别是当涉及到两个以上的客户端时,后一种方法会非常方便:服务器不仅接管了管理各个客户端之间的通信的部分,这也使您能够做一些更强大的通信(想想多播等),如果需要的话。点对点很快成为大量客户的痛点。
唯一需要注意的是,Thrift 不支持推送消息,始终是客户端必须启动 RPC 交互。因此,您需要围绕该限制设计您的通信方案。
上述场景可能与 OP 用例不匹配。我想添加它有两个原因:(1) 为了完整起见 (2) 有利于未来正在寻找它的读者。
注意:我是网络开发和网络方面的初学者。
我的目标是创建一个 windows 控制台应用程序,它充当本地网络上的服务器,并在使用该服务器的同一网络上拥有任意数量的客户端。
我已经使用 Apache Thrift 并设法将控制台应用程序设置为服务器,并创建了一个充当客户端的 Unity3D 项目。 (Using this example code)
当我 运行 服务器和客户端在同一台设备上时它有效。
如果不在同一台设备上,即当我在 iPhone 上导出和构建统一项目时,如何让它工作?
据我所知,我需要在设置客户端时指定一个目标 IP 地址,但我不知道该怎么做。
- 您需要为服务器分配一个静态(私有)IP 地址。
- 将客户端的'localhost'换成私服的ip。
- 如果服务器和客户端共享同一个本地网络,基本上就足够了。
根据用例,另一种解决方案可能涉及 通信服务器 作为第三台机器。
特别是当涉及到两个以上的客户端时,后一种方法会非常方便:服务器不仅接管了管理各个客户端之间的通信的部分,这也使您能够做一些更强大的通信(想想多播等),如果需要的话。点对点很快成为大量客户的痛点。
唯一需要注意的是,Thrift 不支持推送消息,始终是客户端必须启动 RPC 交互。因此,您需要围绕该限制设计您的通信方案。
上述场景可能与 OP 用例不匹配。我想添加它有两个原因:(1) 为了完整起见 (2) 有利于未来正在寻找它的读者。