在Erlang进程中,我如何从ssl套接字接收,同时从另一个带有receive原语的erlang进程接收?
这个想法是将来自套接字的内容转发给另一个进程;和倒退。
到目前为止我唯一的选择是从每一端接收一些时间,然后切换。当然,这将延迟处理在一个接口上接收的消息,同时从另一个接口接收消息。你有没有其他方法可以做到这一点?如果只有Erlang让我使用一个进程从套接字接收,另一个进程发送到套接字......
答案 0 :(得分:2)
不确定我理解你的问题;无论如何,你可以在接收语句中有多个“子句”,因此当从任何一方接收某些内容时它会被“解锁”:
loop() ->
receive
{ssl, Msg} -> % incoming msg from SSL, send it to process
Proc ! Msg,
loop();
{proc, Msg} -> % incoming msg from process, send it to SSL
SSL ! Msg,
loop()
end.
重要的是,您需要以一种可以通过模式匹配区分SSL和流程消息的方式格式化消息。
答案 1 :(得分:0)
无论如何,您将通过receive
语句从进程中的HTTP_Client接收消息。您将能够轻松地描述“对话”:
{http, {RequestId, Result}}
用于HTTP_Client“对话”
有关详细信息,请参阅here。