simple_im
Erlang/OTP Version: 18
- Message transform form one client to other client cost less than 300 microsecond.
- I use toml as transmission protocol instead of xml or json. It is much faster than json.(I use my own toml helper for toml to erlang terms instead of kalta/etoml,because etoml is not so convenient, because it do not support Array of Tables, like <<"[[products]] sku = 738594937">>)
- Use ets to store session, it is much faster than redis or ssdb or mnesia.
- All slow request will handle by http service, IM service only do one thing: transmission message.
- Less processes to carry more user, because for one user's multiple devices there will only be one process.
- Use SSL/TLS for both HTTP and TCP connection by default.
- Multiple listener for one IM node, make it easy to accept more clients for less time.
- Reconnect will not create new process, but reuse the old one.