Compartir a través de


Función WebSocketGetAction (websocket.h)

La función WebSocketGetAction devuelve una acción de una llamada a WebSocketSend, WebSocketReceive o WebSocketCompleteAction.

Sintaxis

HRESULT WebSocketGetAction(
  [in]            WEB_SOCKET_HANDLE       hWebSocket,
  [in]            WEB_SOCKET_ACTION_QUEUE eActionQueue,
  [in, out]       WEB_SOCKET_BUFFER       *pDataBuffers,
  [in, out]       ULONG                   *pulDataBufferCount,
  [out]           WEB_SOCKET_ACTION       *pAction,
  [out]           WEB_SOCKET_BUFFER_TYPE  *pBufferType,
  [out, optional] PVOID                   *pvApplicationContext,
  [out]           PVOID                   *pvActionContext
);

Parámetros

[in] hWebSocket

Tipo: WEB_SOCKET_HANDLE

Identificador de sesión de WebSocket devuelto por una llamada anterior a WebSocketCreateClientHandle o WebSocketCreateServerHandle.

[in] eActionQueue

Tipo: WEB_SOCKET_ACTION_QUEUE

Enumeración que especifica si se va a consultar la cola de envío, la cola de recepción o ambas.

[in, out] pDataBuffers

Tipo: WEB_SOCKET_BUFFER*

Puntero a una matriz de estructuras de WEB_SOCKET_BUFFER que contienen datos de búfer de WebSocket.

Nota No asigne ni desasigne la memoria para las estructuras de WEB_SOCKET_BUFFER , ya que WebSocketGetAction las sobrescribirá. La biblioteca administra la memoria de los búferes devueltos por WebSocketGetAction .
 

[in, out] pulDataBufferCount

Tipo: ULONG*

En la entrada, puntero a un valor que especifica el número de elementos de pDataBuffers. En la salida correcta, número de elementos que se devolvieron realmente en pDataBuffers.

[out] pAction

Tipo: WEB_SOCKET_ACTION*

En la salida correcta, puntero a una enumeración de WEB_SOCKET_ACTION que especifica la acción devuelta de la consulta a la cola define en eActionQueue.

[out] pBufferType

Tipo: WEB_SOCKET_BUFFER_TYPE*

En la salida correcta, puntero a una enumeración WEB_SOCKET_BUFFER_TYPE que especifica el tipo de datos de búfer de socket web devueltos en pDataBuffers.

[out, optional] pvApplicationContext

Tipo: PVOID*

En la salida correcta, puntero a un identificador de contexto de aplicación. El contexto devuelto aquí se pasó inicialmente a WebSocketSend o WebSocketReceive. pvApplicationContext no se establece si pAction es WEB_SOCKET_NO_ACTION o WEB_SOCKET_SEND_TO_NETWORK_ACTION al enviar un pong en respuesta a recibir un ping.

[out] pvActionContext

Tipo: PVOID*

En la salida correcta, puntero a un identificador de contexto de acción. Este identificador se pasa a una llamada posterior a WebSocketCompleteAction.

Valor devuelto

Tipo: HRESULT

Si la función se ejecuta correctamente, devuelve S_OK.

Si se produce un error en la función, devuelve uno de los siguientes o un código de error del sistema definido en WinError.h.

Código devuelto Descripción
E_INVALID_PROTOCOL_FORMAT
Los datos del protocolo tenían formato no válido. Esto solo se devuelve para las operaciones de recepción.
E_INVALID_PROTOCOL_OPERATION
El protocolo realizó operaciones no válidas. Esto solo se devuelve para las operaciones de recepción.

Comentarios

Cada llamada a WebSocketGetAction debe emparejarse con una llamada a WebSocketCompleteAction.

Si el parámetro ulBytesTransferred de WebSocketCompleteAction es diferente de la suma de todas las longitudes de búfer para la acción WEB_SOCKET_SEND_TO_NETWORK_ACTION o es cero para la acción de WEB_SOCKET_RECEIVE_FROM_NETWORK_ACTION , la aplicación WebSocket no enviará ni recibirá todos los datos solicitados.

WebSocketGetAction devolverá en pAction:

Solo puede haber una operación pendiente de envío y recepción a la vez, por lo que la siguiente acción se devolverá una vez que se haya completado la anterior mediante WebSocketCompleteAction.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado websocket.h
Library Websocket.lib
Archivo DLL Websocket.dll

Consulte también

WEB_SOCKET_ACTION

WEB_SOCKET_ACTION_QUEUE

WEB_SOCKET_BUFFER_TYPE

WebSocketCompleteAction

WebSocketReceive

WebSocketSend