Skip to content

Amazing instant messaging service, include IM Service, HTTP Sevice, Message Transmission Pipeline.

License

Notifications You must be signed in to change notification settings

wudixiaotie/simple_im

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simple_im

Erlang/OTP Version: 18

Rebar Version: rebar3

  1. Custom behaviour gen_msg more faster than gen_server.
  2. Message transform form one client to other client cost less than 300 microsecond.
  3. I use toml as transmission protocol instead of xml or json. It is much faster than json or xml(I use my own toml helper for toml to erlang terms instead of kalta/etoml, because it do not support Array of Tables, like <<"[[products]] sku = 738594937">>, and faster than etoml), contain more meanings in smaller size of binary.
  4. Use dets to store session, it is much faster than redis or ssdb, much faster than mnesia when multiple nodes are connected.
  5. All slow request will handle by http service, IM service only do one thing: transmission message.
  6. Less processes to carry more user, because there is only be one process for one user's multiple devices.
  7. Use SSL/TLS for both HTTP and TCP connection by default.
  8. Multiple listener for one IM node, make it easy to accept more clients in less time.
  9. Reconnect will not create new process, but reuse the old one.

Get started: get started.

Production Release: Release it.

My Blog: Big If

About

Amazing instant messaging service, include IM Service, HTTP Sevice, Message Transmission Pipeline.

Resources

License

Stars

Watchers

Forks

Packages

No packages published