0
我有一個與牛仔開發的Erlang websocket服務器。Erlang牛仔連接狀態
我想爲每個連接保留一個狀態變量,這取決於客戶端發送的命令。
哪一個持久化每個websocket連接的狀態變量的最好方法是?
編輯:與「堅持」我的意思是它應該保存在內存只有連接的一生,不需要數據庫。
我有一個與牛仔開發的Erlang websocket服務器。Erlang牛仔連接狀態
我想爲每個連接保留一個狀態變量,這取決於客戶端發送的命令。
哪一個持久化每個websocket連接的狀態變量的最好方法是?
編輯:與「堅持」我的意思是它應該保存在內存只有連接的一生,不需要數據庫。
所有websocket函數都採用用戶定義的State
參數,用於在函數調用之間保持您自己的狀態。當websocket關閉時,狀態將被丟棄。
您將其初始化爲返回值websocket_init/3
,websocket_handle/3
和websocket_info/3
將狀態作爲參數,您可以在其中查找所需的數據。在websocket_init/3
和websocket_handle/3
的返回值中傳遞新狀態(如果不需要狀態更新,則返回相同值)。草圖:
websocket_init(_TransportName, Req, _Opts) ->
MyInitialState=just_started, % The state can be any erlang term,e.g. a record
{ok, Req, MyInitialState}.
websocket_handle({text, _Msg}, Req, State) ->
NewState = case State of
just_started -> up_and_running;
_ -> still_running
end,
{ok, Req, NewState}.
定義'persist'。堅持套接字連接的生命週期,還是狀態必須去某個數據庫? –