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'。坚持套接字连接的生命周期,还是状态必须去某个数据库? –