我想使用elixir连接到ExIrc中的两台服务器,我找不到一个简单的解决方案。我对elixir很新,我能看到的所有我能做的就是使用雨伞'运行两个应用程序并让它们相互连接? (我想使用一个应用程序连接到一个IRC服务器,如果它有某些单词,解析数据并发送到另一个IRC服务器)
答案 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
。要实现您想要的目标,您只需编写一个处理程序,通过调用client
将ExIrc.Client.msg(client2, ...)
发送给另一个客户端来响应Var language=”de”; or var language=”en”;
的消息。