【问题标题】:How should I connect an IRC bot and Meteor web interface?我应该如何连接 IRC 机器人和 Meteor Web 界面?
【发布时间】:2014-07-15 12:21:53
【问题描述】:

我有几个关于 Node、IRC 机器人和 Meteor 的问题。

我是一个开始处理 Twitch.TV 流媒体的游戏社区的一员,因此我被要求(由于我对编程的热爱)编写一个自定义机器人来管理社区流媒体频道。

我的问题是:

1) 链接 IRC 机器人(将使用 Node.JS 中的 IRC 库编写)和基于 Web 的管理系统(将使用 Meteor 构建)的最佳方式是什么。

有人告诉我,我可以使用 MongoDB 实例(Meteor 使用)作为项目的两个“部分”之间的连接点,使用 DDP 或其他方式非常有意义。

对于数据的传输,这似乎很好,但如果我希望能够使用界面实际控制机器人,例如允许用户通过他的控制面板控制其频道的加入/分离

2) 我的另一个问题是关于机器人(节点)和能够检测新用户,以及在创建帐户时自动加入他们的频道的能力。我知道 Meteor 是反应式的,可以立即处理对 MongoDB 实例的更改,但不确定您是否可以使用常规 Node 来做到这一点,或者如果可以......这会有多困难。

也许我应该放弃“自动”的东西,让用户在他们登录新帐户后手动让机器人加入他们的频道,允许他们根据自己的喜好配置机器人(自定义命令等)。 ) 在第一次使用之前。

提前感谢大家花时间阅读这篇信息中篇小说,非常感谢。

【问题讨论】:

    标签: node.js mongodb meteor irc ddp


    【解决方案1】:

    使用 meteorite npm 包,您可以轻松地将 npm 包集成到您的流星应用程序中。

    因此,创建 irc 机器人的最佳方法是在您的流星应用程序中集成一个预先存在的 irc 客户端 npm 包,例如 https://www.npmjs.org/package/irc

    然后创建一个服务器端类来包装您需要的功能。我将使用上面提到的 npm irc 包作为我的高级示例。这个包是基于事件的,所以如果你将它编织到你的流星应用程序中,你可以做一些很酷的事情。

    例子

    var irc = require('irc');
    var client = new irc.Client('irc.dollyfish.net.nz', 'myNick',    
    {
         channels: ['#blah'],
     });
    client.addListener('pm', function (from, message)      
        var action = messageCollection.findOne({message:message});
        //Do stuff based on action...
      });
    

    【讨论】:

    • 哦,哇,我什至没有想到我能做到这一点。我想这肯定会解决通信问题,如果您将 IRC 部分直接网格化到 Meteor 应用程序(服务器端)中。
    猜你喜欢
    • 1970-01-01
    • 2015-01-27
    • 2011-01-21
    • 2015-02-09
    • 1970-01-01
    • 2015-02-21
    • 2012-07-28
    • 2011-01-22
    • 2013-10-18
    相关资源
    最近更新 更多