互联网中继聊天 rfc 实现

Posted

技术标签:

【中文标题】互联网中继聊天 rfc 实现【英文标题】:Internet Relay Chat rfc implementation 【发布时间】:2015-04-10 21:48:41 【问题描述】:

我目前正在编写一个 Internet 中继聊天客户端/服务器实现。 我阅读了 RFC 1459,但有些地方我还不清楚。

首先假设我们有三个用户 A、B 和 C。 A 发布频道消息,我应该将其发送回 A、B 和 C 还是只发送给 B 和 C?我的意思是A的客户应该自己处理帖子吗?

第二点是,我想处理用户 /join 多个频道的可能性。 那么我该如何处理我的用户一次只能发布到一个频道的事实呢? RFC 对此并不清楚。

问候,斯旺

【问题讨论】:

【参考方案1】:

在第一个意义上没有。消息不会广播,因此用户不会收到自己的消息。

发送消息时,您需要提供目的地。无论是用户还是渠道。所以PRIVMSG #channel :hello world 会将该消息定位到#channel。该房间中的其他用户将收到以下信息:

:juco!~juco@hostname.com PRIVMSG #example :Hello world

这在4.4.1 Private messages中有更详细的解释。

【讨论】:

这也是我的想法,但3.2.2 To a ground (channel) 似乎与您的第一点背道而驰,但其他部分证实了这一点,非常不清楚。例如,如果用户 A 写“Hello world!”它会被“PRIVMSG #currentActiveChannel :Hello world !”替换吗? ?” 你说得对,我的回答完全不正确。我刚刚远程登录到几个 IRC 服务器来验证这一点,并相应地更新了我的答案。 那么第二部分呢,你确认我的想法了吗? @SwannPolydor:由用户的客户端来跟踪“活动频道”并将他们的频道消息发送到正确的位置。就服务器而言,来自客户端的每条消息都带有明确的目的地(频道或用户)。

以上是关于互联网中继聊天 rfc 实现的主要内容,如果未能解决你的问题,请参考以下文章

什么是 IRC?

虚拟互联网

Java互联网实时聊天系统(附源码)

高逼格开源聊天系统 推荐 Spring+Netty+Websocket实现

20.事件通信实现进程中继者模式通话

如何从一组中继容器中组合片段?