2017-04-24 173 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