Java Multi-Client Instant Messenger概念帮助

时间:2011-03-27 23:07:58

标签: java client chat

我尝试实现Java聊天程序。在该程序中,多个客户端将通过服务器相互通信。服务器将消息从客户端转发到另一个客户端。它还将提供好友列表的更新。从概念上讲,实现此IM聊天的最佳途径是什么。我遇到问题的部分是让服务器将消息从一个客户端中继到另一个客户端。每个客户端也应该能够选择他们想要与谁通话。再一次,服务器的唯一目的是从一个客户端接收消息并将其发送到另一个客户端。如果一个客户端连接到服务器,则直到另一个客户端连接才会发生任然后两个客户开始相互沟通。

2 个答案:

答案 0 :(得分:0)

你需要提出实施协议;看看XMPP。问题的一部分是确定您将向其发送消息的其他用户。 XMPP有助于解决该问题。我建议连接到服务器的每个用户都有一个线程来处理连接。然后,您可以将所有线程存储到HashMap中,其中键将是用户名。然后将消息推送到线程实现,该实现将消息发送到客户端。

答案 1 :(得分:0)

对于基本聊天系统,您需要以下功能:

  1. 客户端登录您的服务器。这允许您识别客户端并为每个客户端保留好友列表。
  2. 客户端只会向服务器发送消息。
  3. 客户端只接收来自服务器的消息。
  4. 每条消息必须标识以下内容:
    1. 讯息的收件人。
    2. 消息来源。
    3. 信息的文字。
    4. 也许;消息发送的时间和日期。
    5. 服务器需要跟踪对话;基本上是一对客户端对。
    6. 如果您想进行群组聊天,则转换将是一个客户列表列表。
    7. 当客户端向服务器发送消息时,服务器应将其转发给作为对话一部分的所有其他客户端。
    8. 您可能希望让服务器记录所有会话。
    9. 您至少需要2种消息类型;文字(即聊天)和邀请。