2017-04-24 134 views
0

尝试连接到TCP服务器,发送命令并获得响应。连接到TCP客户端Elixir

我有这样的事情在Ruby中

TCPSocket.open("127.0.0.1", 3344) 
s.send(JSON.dump({"id" => 1, "method" => "Responder.Status", "params" => [""]}),0) 

任何指针的任何文件/库,将使实现药剂类似的东西(或更强大的)?

+0

http://erlang.org/doc/man/gen_tcp.html http://elixir-lang.org/getting-已启动/ mix-otp/task-and-gen-tcp.html – Dogbert

+0

感谢@Dogbert,请更新我的问题。任何帮助我如何实现这一目标? – user1232968

回答

1

对于TCP连接,Erlang的标准库gen_tcp可以使用:

{:ok, socket} = :gen_tcp.connect('localhost', 6379, [:binary]) 
data = {"id" => 1, "method" => "Responder.Status", "params" => [""]} 
:ok = :gen_tcp.send(socket, Poison.encode!(data)) 
:ok = :gen_tcp.close(socket) 
+0

谢谢。更新我的问题。我将如何实现这样的目标。尝试Poison.encode,但得到了一个错误...#: – user1232968

+0

'gen_tcp.send(socket,Poison.encode(%{id:1,method:“Responder.Status”})|> elem(1))'应该工作。 –

+0

或者就像回复的OP建议使用Poison.encode! – ash