doc
This commit is contained in:
parent
8c3558b7ec
commit
35ff84a8b7
|
@ -55,7 +55,11 @@
|
|||
%% MQTT Session
|
||||
%%------------------------------------------------------------------------------
|
||||
-record(mqtt_session, {
|
||||
client_id
|
||||
client_id,
|
||||
session_pid,
|
||||
subscriptions = [],
|
||||
awaiting_ack,
|
||||
awaiting_rel
|
||||
}).
|
||||
|
||||
-type mqtt_session() :: #mqtt_session{}.
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
zookeeper
|
||||
|
|
||||
eMQTT1 eMQTT2 eMQTT3
|
||||
|
||||
|
||||
Bridge
|
||||
|
||||
|
||||
eMQTT1 --> eMQTT2
|
||||
|
||||
|
||||
Cluster
|
||||
|
||||
eMQTT1 <--> eMQTT2
|
||||
|
||||
|
||||
Cluster and Bridge
|
||||
|
||||
eMQTT1 eMQTT3
|
||||
---->
|
||||
eMQTT2 eMQTT4
|
||||
|
||||
Mnesia Cluster
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
# Session Design
|
||||
|
||||
## session manager
|
||||
|
||||
```erlang
|
||||
|
||||
%% lookup sesssion
|
||||
emqtt_sm:lookup_session(ClientId)
|
||||
|
||||
%% Start new or resume existing session
|
||||
emqtt_sm:start_session(ClientId)
|
||||
|
||||
%% destroy session, discard all data
|
||||
emqtt_sm:destory_session(ClientId)
|
||||
|
||||
%% close session, save all data
|
||||
emqtt_sm:close_session(ClientId)
|
||||
```
|
||||
|
||||
## session supervisor
|
||||
|
||||
usage?
|
||||
|
||||
## session
|
||||
|
||||
```
|
||||
%%system process
|
||||
process_flag(trap_exit, true),
|
||||
|
||||
session:start()
|
||||
session:subscribe(
|
||||
session:publish(
|
||||
session:resume(
|
||||
session:suspend(
|
||||
%%destory all data
|
||||
session:destory(
|
||||
%%save all data
|
||||
session:close()
|
||||
|
||||
```
|
||||
|
||||
## sm and session
|
||||
|
||||
sm manage and monitor session
|
||||
|
||||
## client and session
|
||||
|
||||
client(normal process)<--link to -->session(system process)
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
|
||||
client state --> parse_state
|
||||
--> proto_state --> session_state
|
Loading…
Reference in New Issue