我service_echo
在一个简单的聊天应用程序中有一个函数,它使用 SockJS 来实现多用户私人聊天。我为在线用户列表创建了一个 ETS 表。通过存储 SockJS 会话,我想每当我收到来自不同连接的消息时向该连接发送消息。
这是我的service_echo
代码。
service_echo(Conn, {recv, Data}, state) ->
Obj = mochijson2:decode(Data),
{struct, JsonData} = Obj,
Name = proplists:get_value(<<"name">>, JsonData),
A = ets:lookup(username,Name),
io:format("~p",[Conn]),
if
length(A) =:= 0 ->
ets:insert(username,{Name,Conn});
true ->
[{AA,BB}] = ets:lookup(username,Name),
BB:send(Data)
end,
io:format("hello");
即使 Conn 和 BB 相同,仍然Conn:send(data)
会向浏览器发送有效数据,BB:send(Data)
但什么也不做,甚至不显示错误。由于我是 Erlang 的新手,请原谅我任何无意的错误。