diff options
author | Loïc Hoguin <[email protected]> | 2013-01-17 23:58:55 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2013-01-17 23:58:55 +0100 |
commit | 1f1969ba7123c2dc4af8b0391104d3147dfe3c3a (patch) | |
tree | c02ac7187e9a61d9a1c01fb18a190f6c8461d08f /guide/ws_handlers.md | |
parent | 1b996794eedbfee87997cde8d05d8fae9548094a (diff) | |
download | cowboy-1f1969ba7123c2dc4af8b0391104d3147dfe3c3a.tar.gz cowboy-1f1969ba7123c2dc4af8b0391104d3147dfe3c3a.tar.bz2 cowboy-1f1969ba7123c2dc4af8b0391104d3147dfe3c3a.zip |
Get the basics of Websocket covered in the guide
Diffstat (limited to 'guide/ws_handlers.md')
-rw-r--r-- | guide/ws_handlers.md | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/guide/ws_handlers.md b/guide/ws_handlers.md index 226ada0..c1e551e 100644 --- a/guide/ws_handlers.md +++ b/guide/ws_handlers.md @@ -16,15 +16,28 @@ is implemented by most browsers today, although for backward compatibility reasons a solution like [Bullet](https://github.com/extend/bullet) might be preferred. -Callbacks ---------- - -@todo Describe the callbacks. - Usage ----- -@todo Explain how to use them. +Websocket handlers are a bridge between the client and your system. +They can receive data from the client, through `websocket_handle/3`, +or from the system, through `websocket_info/3`. It is up to the +handler to decide to process this data, and optionally send a reply +to the client. + +The first thing to do to be able to handle websockets is to tell +Cowboy that it should upgrade the connection to use the Websocket +protocol, as follow. + +``` erlang +init({tcp, http}, Req, Opts) -> + {upgrade, protocol, cowboy_websocket}. +``` + +Cowboy will then switch the protocol and call `websocket_init`, +followed by zero or more calls to `websocket_data` and +`websocket_info`. Then, when the connection is shutting down, +`websocket_terminate` will be called. The following handler sends a message every second. It also echoes back what it receives. |