使用ExIrc(Elixir)连接到多个IRC服务器?

时间:2015-06-25 06:28:13

标签: irc elixir

我想使用elixir连接到ExIrc中的两台服务器,我找不到一个简单的解决方案。我对elixir很新,我能看到的所有我能做的就是使用雨伞'运行两个应用程序并让它们相互连接? (我想使用一个应用程序连接到一个IRC服务器,如果它有某些单词,解析数据并发送到另一个IRC服务器)

1 个答案:

答案 0 :(得分:2)

因此,要连接单个客户端,您可以执行以下操作:

ExIrc.start!
{:ok, client} = ExIrc.Client.start_link
{:ok, handler} = ExampleHandler.start_link(nil)
ExIrc.Client.add_handler(client, handler)
ExIrc.Client.connect!(client, "chat.freenode.net", 6667)

正如README建议的那样,我正在使用ExampleHandler。现在,如果您执行以下操作:

pass = ""
nick = "my_nick"
ExIrc.Client.logon(client, pass, nick, nick, nick)
ExIrc.Client.join(client, "#elixir-lang")

您将开始看到#elixir-lang的消息输出到控制台 - 这就是ExampleHandler的实现方式,您可能会在其位置实现其他内容。

现在没有什么能阻止你第二次这样做了:

{:ok, client2} = ExIrc.Client.start_link
{:ok, handler2} = ExampleHandler.start_link(nil)
# and so on

创建连接到同一服务器或另一台服务器的客户端client2。要实现您想要的目标,您只需编写一个处理程序,通过调用clientExIrc.Client.msg(client2, ...)发送给另一个客户端来响应Var language=”de”; or var language=”en”; 的消息。