作为个人项目的一部分,我正在制作一个IRC 机器人。我的第一次尝试是让一个主类完成所有工作,但效率不高,所以我决定将 IRC 部分与机器人分开,制作一个非常简单的 IRC 客户端,它可以连接到服务器、验证自身、加入通道和接收线。
然后,我可以在 IRC 客户端接收到每一行时对其进行处理,或者将客户端放入一个线程中,它将这些行放入队列或映射中(取决于它是什么类型的行)。线程选项似乎更合适且更具挑战性。
由于机器人需要访问 IRC 客户端收到的行,我想将这些行放在机器人可以访问的公共静态队列中,但这让我想起了 C 中的一个全局变量,我觉得这很奇怪,因为每个人都可以访问此字段。有没有办法让 IRC 客户端完成它的工作,让机器人在没有公共静态字段的情况下达到峰值?
我想过让 IRC 客户端使用同步方法传递线路,以便在线路可用时通知机器人。