Sergey Pastor / 1

Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

web_socket.c File Reference

web_socket.c File Reference

WebSocket API (client and server) More...

Go to the source code of this file.

Functions

error_t webSocketInit (void)
 WebSocket related initialization.
error_t webSocketRegisterRandCallback (WebSocketRandCallback callback)
 Register RNG callback function.
WebSocket * webSocketOpen (void)
 Create a WebSocket.
WebSocket * webSocketUpgradeSocket (Socket *socket)
 Upgrade a socket to a WebSocket.
WebSocket * webSocketUpgradeSecureSocket (Socket *socket, TlsContext *tlsContext)
 Upgrade a secure socket to a secure WebSocket.
error_t webSocketRegisterTlsInitCallback (WebSocket *webSocket, WebSocketTlsInitCallback callback)
 Register TLS initialization callback function.
error_t webSocketSetTimeout (WebSocket *webSocket, systime_t timeout)
 Set timeout value for blocking operations.
error_t webSocketSetHost (WebSocket *webSocket, const char_t *host)
 Set the hostname of the resource being requested.
error_t webSocketSetOrigin (WebSocket *webSocket, const char_t *origin)
 Set the origin header field.
error_t webSocketSetSubProtocol (WebSocket *webSocket, const char_t *subProtocol)
 Set the sub-protocol header field.
error_t webSocketSetAuthInfo (WebSocket *webSocket, const char_t *username, const char_t *password, uint_t allowedAuthModes)
 Set authentication information.
error_t webSocketBindToInterface (WebSocket *webSocket, NetInterface *interface)
 Bind the WebSocket to a particular network interface.
error_t webSocketConnect (WebSocket *webSocket, const IpAddr *serverIpAddr, uint16_t serverPort, const char_t *uri)
 Establish a WebSocket connection.
error_t webSocketSetClientKey (WebSocket *webSocket, const char_t *clientKey)
 Set client's key.
error_t webSocketParseClientHandshake (WebSocket *webSocket)
 Parse client's handshake.
error_t webSocketSendServerHandshake (WebSocket *webSocket)
 Send server's handshake.
error_t webSocketSendErrorResponse (WebSocket *webSocket, uint_t statusCode, const char_t *message)
 Send HTTP error response to the client.
error_t webSocketSend (WebSocket *webSocket, const void *data, size_t length, WebSocketFrameType type, size_t *written)
 Transmit data over the WebSocket connection.
error_t webSocketSendEx (WebSocket *webSocket, const void *data, size_t length, WebSocketFrameType type, size_t *written, bool_t firstFrag, bool_t lastFrag)
 Transmit data over the WebSocket connection.
error_t webSocketReceive (WebSocket *webSocket, void *data, size_t size, WebSocketFrameType *type, size_t *received)
 Receive data from a WebSocket connection.
error_t webSocketReceiveEx (WebSocket *webSocket, void *data, size_t size, WebSocketFrameType *type, size_t *received, bool_t *firstFrag, bool_t *lastFrag)
 Receive data from a WebSocket connection.
bool_t webSocketIsRxReady (WebSocket *webSocket)
 Check whether some data is available in the receive buffer.
error_t webSocketShutdown (WebSocket *webSocket)
 Gracefully close a WebSocket connection.
void webSocketClose (WebSocket *webSocket)
 Close a WebSocket connection.

Detailed Description

WebSocket API (client and server)

License

Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author:
Oryx Embedded SARL (www.oryx-embedded.com)
Version:
1.7.6

Definition in file web_socket.c.


Function Documentation

error_t webSocketBindToInterface ( WebSocket *  webSocket,
NetInterface *  interface 
)

Bind the WebSocket to a particular network interface.

Parameters:
[in]webSocketHandle to a WebSocket
[in]interfaceNetwork interface to be used
Returns:
Error code

Definition at line 364 of file web_socket.c.

void webSocketClose ( WebSocket *  webSocket )

Close a WebSocket connection.

Parameters:
[in]webSocketHandle identifying the WebSocket to close

Definition at line 1539 of file web_socket.c.

error_t webSocketConnect ( WebSocket *  webSocket,
const IpAddr serverIpAddr,
uint16_t  serverPort,
const char_t *  uri 
)

Establish a WebSocket connection.

Parameters:
[in]webSocketHandle to a WebSocket
[in]serverIpAddrIP address of the WebSocket server to connect to
[in]serverPortTCP port number that will be used to establish the connection
[in]uriNULL-terminated string that contains the resource name
Returns:
Error code

Definition at line 388 of file web_socket.c.

error_t webSocketInit ( void   )

WebSocket related initialization.

Returns:
Error code

Definition at line 58 of file web_socket.c.

bool_t webSocketIsRxReady ( WebSocket *  webSocket )

Check whether some data is available in the receive buffer.

Parameters:
[in]webSocketHandle to a WebSocket
Returns:
The function returns TRUE if some data is pending and can be read immediately without blocking. Otherwise, FALSE is returned

Definition at line 1398 of file web_socket.c.

WebSocket* webSocketOpen ( void   )

Create a WebSocket.

Returns:
Handle referencing the new WebSocket

Definition at line 93 of file web_socket.c.

error_t webSocketParseClientHandshake ( WebSocket *  webSocket )

Parse client's handshake.

Parameters:
[in]webSocketHandle that identifies a WebSocket
Returns:
Error code

Definition at line 708 of file web_socket.c.

error_t webSocketReceive ( WebSocket *  webSocket,
void *  data,
size_t  size,
WebSocketFrameType type,
size_t *  received 
)

Receive data from a WebSocket connection.

Parameters:
[in]webSocketHandle that identifies a WebSocket
[out]dataBuffer where to store the incoming data
[in]sizeMaximum number of bytes that can be received
[out]typeFrame type
[out]receivedNumber of bytes that have been received
Returns:
Error code

Definition at line 1120 of file web_socket.c.

error_t webSocketReceiveEx ( WebSocket *  webSocket,
void *  data,
size_t  size,
WebSocketFrameType type,
size_t *  received,
bool_t *  firstFrag,
bool_t *  lastFrag 
)

Receive data from a WebSocket connection.

Parameters:
[in]webSocketHandle that identifies a WebSocket
[out]dataBuffer where to store the incoming data
[in]sizeMaximum number of bytes that can be received
[out]typeFrame type
[out]receivedNumber of bytes that have been received
[out]firstFragFirst fragment of the message
[out]lastFragLast fragment of the message
Returns:
Error code

Definition at line 1143 of file web_socket.c.

error_t webSocketRegisterRandCallback ( WebSocketRandCallback  callback )

Register RNG callback function.

Parameters:
[in]callbackRNG callback function
Returns:
Error code

Definition at line 74 of file web_socket.c.

error_t webSocketRegisterTlsInitCallback ( WebSocket *  webSocket,
WebSocketTlsInitCallback  callback 
)

Register TLS initialization callback function.

Parameters:
[in]webSocketHandle that identifies a WebSocket
[in]callbackTLS initialization callback function
Returns:
Error code

Definition at line 217 of file web_socket.c.

error_t webSocketSend ( WebSocket *  webSocket,
const void *  data,
size_t  length,
WebSocketFrameType  type,
size_t *  written 
)

Transmit data over the WebSocket connection.

Parameters:
[in]webSocketHandle that identifies a WebSocket
[in]dataPointer to a buffer containing the data to be transmitted
[in]lengthNumber of data bytes to send
[in]typeFrame type
[out]writtenActual number of bytes written (optional parameter)
Returns:
Error code

Definition at line 935 of file web_socket.c.

error_t webSocketSendErrorResponse ( WebSocket *  webSocket,
uint_t  statusCode,
const char_t *  message 
)

Send HTTP error response to the client.

Parameters:
[in]webSocketHandle that identifies a WebSocket
[in]statusCodeHTTP status code
[in]messageText message
Returns:
Error code

Definition at line 860 of file web_socket.c.

error_t webSocketSendEx ( WebSocket *  webSocket,
const void *  data,
size_t  length,
WebSocketFrameType  type,
size_t *  written,
bool_t  firstFrag,
bool_t  lastFrag 
)

Transmit data over the WebSocket connection.

Parameters:
[in]webSocketHandle that identifies a WebSocket
[in]dataPointer to a buffer containing the data to be transmitted
[in]lengthNumber of data bytes to send
[in]typeFrame type
[out]writtenActual number of bytes written (optional parameter)
[in]firstFragFirst fragment of the message
[in]lastFragLast fragment of the message

Definition at line 956 of file web_socket.c.

error_t webSocketSendServerHandshake ( WebSocket *  webSocket )

Send server's handshake.

Parameters:
[in]webSocketHandle that identifies a WebSocket
Returns:
Error code

Definition at line 797 of file web_socket.c.

error_t webSocketSetAuthInfo ( WebSocket *  webSocket,
const char_t *  username,
const char_t *  password,
uint_t  allowedAuthModes 
)

Set authentication information.

Parameters:
[in]webSocketHandle to a WebSocket
[in]usernameNULL-terminated string containing the user name to be used
[in]passwordNULL-terminated string containing the password to be used
[in]allowedAuthModesLogic OR of allowed HTTP authentication modes
Returns:
Error code

Definition at line 331 of file web_socket.c.

error_t webSocketSetClientKey ( WebSocket *  webSocket,
const char_t *  clientKey 
)

Set client's key.

Parameters:
[in]webSocketHandle to a WebSocket
[in]clientKeyNULL-terminated string that holds the the client's key
Returns:
Error code

Definition at line 642 of file web_socket.c.

error_t webSocketSetHost ( WebSocket *  webSocket,
const char_t *  host 
)

Set the hostname of the resource being requested.

Parameters:
[in]webSocketHandle to a WebSocket
[in]hostNULL-terminated string containing the hostname
Returns:
Error code

Definition at line 266 of file web_socket.c.

error_t webSocketSetOrigin ( WebSocket *  webSocket,
const char_t *  origin 
)

Set the origin header field.

Parameters:
[in]webSocketHandle to a WebSocket
[in]originNULL-terminated string containing the origin
Returns:
Error code

Definition at line 287 of file web_socket.c.

error_t webSocketSetSubProtocol ( WebSocket *  webSocket,
const char_t *  subProtocol 
)

Set the sub-protocol header field.

Parameters:
[in]webSocketHandle to a WebSocket
[in]subProtocolNULL-terminated string containing the sub-protocol
Returns:
Error code

Definition at line 308 of file web_socket.c.

error_t webSocketSetTimeout ( WebSocket *  webSocket,
systime_t  timeout 
)

Set timeout value for blocking operations.

Parameters:
[in]webSocketHandle to a WebSocket
[in]timeoutMaximum time to wait
Returns:
Error code

Definition at line 241 of file web_socket.c.

error_t webSocketShutdown ( WebSocket *  webSocket )

Gracefully close a WebSocket connection.

Parameters:
[in]webSocketHandle to a WebSocket

Definition at line 1423 of file web_socket.c.

WebSocket* webSocketUpgradeSecureSocket ( Socket *  socket,
TlsContext *  tlsContext 
)

Upgrade a secure socket to a secure WebSocket.

Parameters:
[in]socketHandle referencing the socket
[in]tlsContextPointer to the SSL/TLS context
Returns:
Handle referencing the new WebSocket

Definition at line 178 of file web_socket.c.

WebSocket* webSocketUpgradeSocket ( Socket *  socket )

Upgrade a socket to a WebSocket.

Parameters:
[in]socketHandle referencing the socket
Returns:
Handle referencing the new WebSocket

Definition at line 139 of file web_socket.c.