编写一个简单的IRC(Internet中继聊天)客户端

时间:2020-03-05 18:42:25  来源:igfitidea点击:

我从很小的时候就开始使用IRC,并且一直对它着迷。作为一种语言练习,我正在考虑使用鞋子作为图形前端在Ruby中编程一个简单的IRC客户端。亲爱的先生,我要问是什么,我需要熟悉些什么才能开始这个伟大的冒险之旅(当然,除了鞋子和露比之外)?我想象有关于IRC协议的某种规范。有指针吗?

解决方案

回答

IRC规范在RFC 1459中列出

http://www.irchelp.org/irchelp/rfc/rfc.html

回答

I found this gem on Wikipedia. Sounds intimidating.

实际上不是。

远程登录到IRC服务器,并亲身见证协议的简单性。最困难的部分是握手,在那之后非常简单。

回答

我曾经与另外2个人一起实现了一个客户端和一个服务器(作为课程的一部分)。
我可以告诉我们,已经链接到的RFC很棒。
我还尝试简单地嗅探与现有客户端的连接,以亲自了解事物的工作方式。

回答

不能完全回答问题,但这可能会有所帮助。如果我们使用的是Ruby,我发现Autumn Leaves项目是使用Ruby构建IRC机器人的好方法:

http://github.com/RISCfuture/autumn/tree/master

这几乎就是Ruby世界的Jibble。

回答

较早的帖子提到了RFC1459. 尽管它是IRC的很好的介绍,但实际上已被RFC 2810-2813取代。这是我们编写任何与IRC相关的文件所需的文档的完整列表:

  • RFC1459(原始RFC;已取代,但仍然有用)
  • RFC2810(IRC架构)
  • RFC2811(IRC通道管理)
  • RFC2812(IRC客户端协议)
  • RFC2813(IRC服务器协议)
  • CTCP规范
  • DCC规格
  • 更新了CTCP规范(并非所有客户端都支持此规范)
  • ISupport(响应代码005)草稿(如今几乎所有服务器都支持)
  • 客户端功能(CAP命令)草案(某些服务器/客户端支持)
  • IRCv3标准和建议(IRC的未来功能,其中一些功能已得到广泛支持)