Поделиться через


Функция WebSocketGetAction (websocket.h)

Функция WebSocketGetAction возвращает действие из вызова WebSocketSend, WebSocketReceive или WebSocketCompleteAction.

Синтаксис

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
);

Параметры

[in] hWebSocket

Тип: WEB_SOCKET_HANDLE

Дескриптор сеанса WebSocket, возвращенный предыдущим вызовом WebSocketCreateClientHandle или WebSocketCreateServerHandle.

[in] eActionQueue

Тип: WEB_SOCKET_ACTION_QUEUE

Перечисление, указывающее, следует ли запрашивать очередь отправки, очередь получения или и то, и другое.

[in, out] pDataBuffers

Тип: WEB_SOCKET_BUFFER*

Указатель на массив WEB_SOCKET_BUFFER структур, содержащих данные буфера WebSocket.

Примечание Не выделяйте и не отменяйте выделение памяти для WEB_SOCKET_BUFFER структур, так как они будут перезаписаны с помощью WebSocketGetAction. Память для буферов, возвращаемая WebSocketGetAction , управляется библиотекой.
 

[in, out] pulDataBufferCount

Тип: ULONG*

На входных данных указатель на значение, указывающее количество элементов в pDataBuffers. При успешном выводе — количество элементов, которые были фактически возвращены в pDataBuffers.

[out] pAction

Тип: WEB_SOCKET_ACTION*

При успешном выводе указатель на перечисление WEB_SOCKET_ACTION , указывающее действие, возвращаемое из запроса в очередь, определяется в eActionQueue.

[out] pBufferType

Тип: WEB_SOCKET_BUFFER_TYPE*

При успешном выводе указатель на перечисление WEB_SOCKET_BUFFER_TYPE , указывающее тип данных буфера веб-сокета, возвращаемых в pDataBuffers.

[out, optional] pvApplicationContext

Тип: PVOID*

При успешном выводе указателя на дескриптор контекста приложения. Возвращенный здесь контекст изначально был передан в WebSocketSend или WebSocketReceive. Параметр pvApplicationContext не задан, если pActionWEB_SOCKET_NO_ACTION или WEB_SOCKET_SEND_TO_NETWORK_ACTION при отправке pong в ответ на получение проверки связи.

[out] pvActionContext

Тип: PVOID*

При успешном выводе указатель на дескриптор контекста действия. Этот дескриптор передается в последующий вызов WebSocketCompleteAction.

Возвращаемое значение

Тип: HRESULT

Если функция завершается успешно, она возвращает S_OK.

Если функция завершается сбоем, она возвращает один из следующих кодов или системной ошибки , определенных в WinError.h.

Код возврата Описание
E_INVALID_PROTOCOL_FORMAT
Данные протокола имеют недопустимый формат. Возвращается только для операций получения.
E_INVALID_PROTOCOL_OPERATION
Протокол выполнил недопустимые операции. Возвращается только для операций получения.

Комментарии

Каждый вызов WebSocketGetAction должен быть связан с вызовом WebSocketCompleteAction.

Если параметр ulBytesTransferredобъекта WebSocketCompleteAction отличается от суммы всех длин буферов для действия WEB_SOCKET_SEND_TO_NETWORK_ACTION или равен нулю для действия WEB_SOCKET_RECEIVE_FROM_NETWORK_ACTION , приложение WebSocket не будет отправлять или получать все запрошенные данные.

WebSocketGetAction возвращает в pAction:

Одновременно может существовать только одна незавершенная операция отправки и получения, поэтому следующее действие будет возвращено после завершения предыдущей операции с помощью WebSocketCompleteAction.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header websocket.h
Библиотека Websocket.lib
DLL Websocket.dll

См. также раздел

WEB_SOCKET_ACTION

WEB_SOCKET_ACTION_QUEUE

WEB_SOCKET_BUFFER_TYPE

WebSocketCompleteAction

WebSocketReceive

WebSocketSend