开源社区聊天工具IRC的正确打开方式

日期: 2018-05-27 更新: 2018-06-01 分类: geeks

也许IRC即将被淘汰吧,研究的人少,资料更少。为了定制一个简易的多端聊天工具,我研究了一番IRC,并记录于此。

简介

IRC是开源社区比较流行的纯文本即时聊天方案,支持私聊、群聊(频道)。

优点是,无需注册。开源项目,各个平台的客户端都有,虽然样式丑了点。根据IRC协议,很容易制作聊天机器人。

缺点是,只能发纯文本,而且没有远程聊天记录。发送内容有长度限值,不能发送多行文本,单个报文长度为512字节(含IRC命令、用户信息、聊天文本,合计长度)。

使用昵称作为主要用户识别信息,昵称不能重复。昵称最长9个字符。注册后的昵称,认证以后可以将使用该昵称的人踢下线。

公共服务器

  • Freenode
    最知名,开源项目基本都在这里有项目频道

客户端

  • HexChat
    界面优美,但是聊天界面排版较差,功能较少
  • Pidgin
    轻量易于扩展,界面巨丑
  • Empathy
    臃肿,比Pidgin好看一些
  • Webchat
    网页模式,开箱即用,丑,功能简单
  • Irssi
    命令行模式,上手难,但是蛮好用
  • Weechat
    命令行模式,功能复杂

以irssi为例

1
2
# 以昵称 maoxuner 登录 freenode
irssi -c chat.freenode.net -n maoxuner

连接成功后,如果没有重名,可以注册该昵称。执行以下命令后,去邮箱查看验证信息,按提示操作即可。

1
/msg NickServ REGISTER your_password your_email@domain.com

邮箱里收到的内容大概如下,在irssi中执行即可

1
/msg NickServ VERIFY REGISTER maoxuner knpnmlyslgpd

注册以后,使用该昵称登录的话,会提示该昵称已被注册,需要认证才行

1
/msg NickServ IDENTIFY your_password

加入某个群聊(频道),如#deepin

1
/join #deepin

如果这个群聊是自己新建的,那么自己就是群主,此时对该群有管理权限。如下可以增删管理员

1
2
/mode +o others_nick
/mode -o others_nick

如下可以给群设置密码

1
/mode +k chan_pass

重进刚刚的群,会失去管理员权限。需要在线的管理员赋予自己权限。可以把ChanServ服务设为该群的管理员,然后由ChanServ恢复自己的管理权限

1
/msg ChanServ SET #deepin GUARD ON

手动请求ChanServ恢复管理权限

1
/msg ChanServ OP #deepin maoxuner

设置自动恢复管理权限

1
/msg ChanServ FLAG +O

剩下的用/help命令即可搞定了

服务器

  • ngIRCd
    IRC基础服务器
  • Xtheme
    IRC机器人,如NickServ,ChanServ等。由atheme衍生而来

Xtheme使用方式

  1. 配置ngIRCd并启动
  2. 安装Xtheme

IRC协议

IRC协议逐年完善,其中rfc1459规定了基础的命令。实现该协议基本就能实现一个可用的IRC服务器、客户端了

PhpIrcClient