This module defines the cowboy_websocket_handler behaviour.
Required callback functions: websocket_init/3, websocket_handle/3, websocket_info/3, websocket_terminate/3.
Handler for HTTP WebSocket requests.
WebSocket handlers must implement five callbacks: init/3, websocket_init/3, websocket_handle/3, websocket_info/3 and websocket_terminate/3. These callbacks will only be called if the connection is upgraded to WebSocket in the HTTP handler's init/3 callback. They are then called in that order, although websocket_handle/3 will be called for each packet received, and websocket_info for each message received.
websocket_init/3 is meant for initialization. It receives information about the transport and protocol used, along with the handler options from the dispatch list. You can define a request-wide state here. If you are going to want to compact the request, you should probably do it here.
websocket_handle/3 receives the data from the socket. It can reply something, do nothing or close the connection.
websocket_info/3 receives messages sent to the process. It has the same reply format as websocket_handle/3 described above. Note that unlike in a gen_server, when websocket_info/3 replies something, it is always to the socket, not to the process that originated the message.
websocket_terminate/3 is meant for cleaning up. It also receives the request and the state previously defined, along with a reason for termination.
All of websocket_init/3, websocket_handle/3 and websocket_info/3 can decide to hibernate the process by adding an extra element to the returned tuple, containing the atom hibernate. Doing so helps save memory and improve CPU usage.Generated by EDoc, Aug 16 2014, 11:28:19.