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