我想构建一个聊天应用程序,并且对决定是使用套接字还是 RMI 来构建应用程序感到困惑。我听说 RMI 很难通过 Internet 配置和部署,因为这是我的意图,我想知道使用套接字或 RMI 哪个更合适。由于套接字或 RMI 中的 NAT 是否更容易解决问题?
如果我想在以后添加语音支持怎么办,它有助于决定走哪条路吗?
1.对于像Chat Messenger这样的应用,我的赌注是 Sockets.
2. RMI
这里会过杀。
3.此外,NAT
问题不是关于Socket
或RMI
,而是关于静态IP。
4.如果你想在网络上部署聊天服务器,那么首先你必须有一个静态 IP,你需要让你的 ISP 为你提供其中一个,需要额外付费,或者互联网上有网站,那使您的动态 ips 为静态。
5.但是如果你的服务器位于本地局域网环境中,那么我认为你这样做不会有问题。
两者都是可用于构建聊天服务器/客户端的合理选择。可以设置一个套接字来接收传入连接并为每个“chatter”启动一个新线程,或者可以使用 RMI 来创建一个分布式对象,客户端可以在该对象上调用方法。
RMI 基本上是在需要一些透明度和需要调用远程方法的分布式计算中经常使用的套接字层。它还允许到服务器的无状态连接。
如果您选择在 RMI 中实现服务器,请注意线程安全可能是一个问题。
对于本地服务器,使用纯套接字可能更容易。
有关 RMI 的更多详细信息: http ://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html