wslay_event_queue_msg, wslay_event_queue_msg_ex¶
SYNOPSIS¶
#include <wslay/wslay.h>
-
int
wslay_event_queue_msg
(wslay_event_context_ptr ctx, const struct wslay_event_msg *arg)¶
-
int
wslay_event_queue_msg_ex
(wslay_event_context_ptr ctx, const struct wslay_event_msg *arg, uint8_t rsv)¶
DESCRIPTION¶
wslay_event_queue_msg()
and wslay_event_queue_msg_ex()
queue message specified in arg. The struct wslay_event_msg is
defined as:
struct wslay_event_msg {
uint8_t opcode;
const uint8_t *msg;
size_t msg_length;
};
The opcode member is opcode of the message. The msg member is the pointer to the message data. The msg_length member is the length of message data.
This function supports both control and non-control messages and
the given message is sent without fragmentation.
If fragmentation is needed, use wslay_event_queue_fragmented_msg()
function instead.
This function makes a copy of msg of length msg_length.
This function just queues a message and does not send it.
wslay_event_send()
function call sends these queued messages.
wslay_event_queue_msg_ex()
additionally accepts rsv
parameter, which is a reserved bits to send. To set reserved bits, use
macro WSLAY_RSV1_BIT
, WSLAY_RSV2_BIT
, and WSLAY_RSV3_BIT
.
See wslay_event_config_set_allowed_rsv_bits()
to see the
allowed reserved bits to set.
RETURN VALUE¶
wslay_event_queue_msg()
and wslay_event_queue_msg_ex()
return 0 if it succeeds, or returns the following negative error
codes:
- WSLAY_ERR_NO_MORE_MSG
- Could not queue given message. The one of possible reason is that close control frame has been queued/sent and no further queueing message is not allowed.
- WSLAY_ERR_INVALID_ARGUMENT
- The given message is invalid; or RSV1 is set for control frame; or
bit is set in rsv which is not allowed (see
wslay_event_config_set_allowed_rsv_bits()
). - WSLAY_ERR_NOMEM
- Out of memory.