1
我想建立一个动态的网络应用程序,我发现sockjs非常有前途。推SockJS-erlang,Howto?
但是,我不知道如何将数据从服务器推送到客户端。文档(包括两个小例子)显示了一些«回声服务器»的例子。
但我会得到的是:
- 用户打开带有sockjs的连接,然后我得到一个PID或ID
- 那么我就可以将消息发送到这个PID推到浏览器
我不知道该怎么做。
这是他们处理
service_echo(_Conn, init, state) -> {ok, state};
service_echo(Conn, {recv, Data}, state) -> Conn:send(Data);
service_echo(_Conn, closed, state) -> {ok, state}.
,我想这样的事情
service_push(Conn, init, state) ->
Pid = Conn:pid(),
---- here get user ID from cookies or another way ----
push_service:register(user,UserID,Pid),
{ok, state};
service_echo(Conn, {recv, Data}, state) -> do_something:with(Data);
service_echo(Conn, closed, state) -> service_push:unregister(Conn:pid()).
然后我可以发送相关信息到康涅狄格州的PID和这个康涅狄格州将数据发送到客户端。
我不知道该怎么写。
谢谢
我想我会创建一个事件侦听器将在与用户ID相关联的康涅狄格州的ETS查表关键。如果在表格中找到,那么我会通过sockjs转发事件。此ETS表中的注册和注销将分别发生在service_echo(_,init,_)和service_echo(_,closed,_)中。 (当然service_echo的命名方式不同,你认为它是正确的吗?Conn是否改变了,或者我能否将它存储在初始化的ETS中? 谢谢 – niahoo 2012-09-04 16:05:11