5.3. http_websocket_server — HTTP websocket server

Source code: src/inet/http_websocket_server.h, src/inet/http_websocket_server.c

Test code: tst/inet/http_websocket_server/main.c

Test coverage: src/inet/http_websocket_server.c


Functions

int http_websocket_server_init(struct http_websocket_server_t *self_p, struct socket_t *socket_p)

Initialize given websocket server. The server uses the http module interface to communicate with the client.

Return
zero(0) or negative error code.
Parameters
  • self_p: Http to initialize.
  • socket_p: Connected socket.

int http_websocket_server_handshake(struct http_websocket_server_t *self_p, struct http_server_request_t *request_p)

Read the handshake request from the client and send the handshake response.

Return
zero(0) or negative error code.
Parameters
  • self_p: Websocket server.
  • request_p: Read handshake request.

ssize_t http_websocket_server_read(struct http_websocket_server_t *self_p, int *type_p, void *buf_p, size_t size)

Read a message from given websocket.

Return
Number of bytes read or negative error code.
Parameters
  • self_p: Websocket to read from.
  • type_p: Read message type.
  • buf_p: Buffer to read into.
  • size: Number of bytes to read. Longer messages will be truncated and the leftover data dropped.

ssize_t http_websocket_server_write(struct http_websocket_server_t *self_p, int type, const void *buf_p, uint32_t size)

Write given message to given websocket.

Return
Number of bytes written or negative error code.
Parameters
  • self_p: Websocket to write to.
  • type: One of HTTP_TYPE_TEXT and HTTP_TYPE_BINARY.
  • buf_p: Buffer to write.
  • size: Number of bytes to write.

struct http_websocket_server_t
#include <http_websocket_server.h>

Public Members

struct socket_t *socket_p