This commit is contained in:
Ery Lee 2015-01-13 00:08:28 +08:00
parent 8c3558b7ec
commit 35ff84a8b7
4 changed files with 84 additions and 1 deletions

View File

@ -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{}.

25
doc/cluster.md Normal file
View File

@ -0,0 +1,25 @@
zookeeper
|
eMQTT1 eMQTT2 eMQTT3
Bridge
eMQTT1 --> eMQTT2
Cluster
eMQTT1 <--> eMQTT2
Cluster and Bridge
eMQTT1 eMQTT3
---->
eMQTT2 eMQTT4
Mnesia Cluster

50
doc/session.md Normal file
View File

@ -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)

4
doc/state_design.md Normal file
View File

@ -0,0 +1,4 @@
client state --> parse_state
--> proto_state --> session_state