doc
This commit is contained in:
parent
8c3558b7ec
commit
35ff84a8b7
|
@ -55,7 +55,11 @@
|
||||||
%% MQTT Session
|
%% MQTT Session
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
-record(mqtt_session, {
|
-record(mqtt_session, {
|
||||||
client_id
|
client_id,
|
||||||
|
session_pid,
|
||||||
|
subscriptions = [],
|
||||||
|
awaiting_ack,
|
||||||
|
awaiting_rel
|
||||||
}).
|
}).
|
||||||
|
|
||||||
-type mqtt_session() :: #mqtt_session{}.
|
-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