다음을 통해 공유


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

WebSocketCreateClientHandle 또는 WebSocketCreateServerHandle에 대한 이전 호출에서 반환된 WebSocket 세션 핸들입니다.

[in] eActionQueue

형식: WEB_SOCKET_ACTION_QUEUE

보내기 큐, 수신 큐 또는 둘 다를 쿼리할지 여부를 지정하는 열거형입니다.

[in, out] pDataBuffers

형식: WEB_SOCKET_BUFFER*

WebSocket 버퍼 데이터를 포함하는 WEB_SOCKET_BUFFER 구조체의 배열에 대한 포인터입니다.

참고webSocketGetAction에서 덮어쓰기 때문에 WEB_SOCKET_BUFFER 구조체에 대한 메모리를 할당하거나 할당 취소하지 마세요. WebSocketGetAction에서 반환된 버퍼의 메모리는 라이브러리에서 관리됩니다.
 

[in, out] pulDataBufferCount

형식: ULONG*

입력 시 pDataBuffers의 요소 수를 지정하는 값에 대한 포인터입니다. 성공적인 출력에서 pDataBuffers에서 실제로 반환된 요소의 수입니다.

[out] pAction

형식: WEB_SOCKET_ACTION*

성공적으로 출력되면 쿼리에서 큐로 반환되는 작업을 지정하는 WEB_SOCKET_ACTION 열거형에 대한 포인터가 eActionQueue에서 정의됩니다.

[out] pBufferType

형식: WEB_SOCKET_BUFFER_TYPE*

성공적인 출력에서 pDataBuffers에 반환된 웹 소켓 버퍼 데이터의 형식을 지정하는 WEB_SOCKET_BUFFER_TYPE 열거형에 대한 포인터입니다.

[out, optional] pvApplicationContext

형식: PVOID*

성공적인 출력에서 애플리케이션 컨텍스트 핸들에 대한 포인터입니다. 여기서 반환된 컨텍스트는 처음에 WebSocketSend 또는 WebSocketReceive에 전달되었습니다. pActionWEB_SOCKET_NO_ACTION 경우 pvApplicationContext가 설정되지 않거나 ping 수신에 대한 응답으로 탁구를 보낼 때 WEB_SOCKET_SEND_TO_NETWORK_ACTION.

[out] pvActionContext

형식: PVOID*

성공적인 출력에서 작업 컨텍스트 핸들에 대한 포인터입니다. 이 핸들은 후속 호출 WebSocketCompleteAction에 전달됩니다.

반환 값

형식: HRESULT

함수가 성공하면 S_OK를 반환합니다.

함수가 실패하면 WinError.h에 정의된 다음 또는 시스템 오류 코드 중 하나를 반환합니다.

반환 코드 설명
E_INVALID_PROTOCOL_FORMAT
프로토콜 데이터의 형식이 잘못되었습니다. 수신 작업에 대해서만 반환됩니다.
E_INVALID_PROTOCOL_OPERATION
프로토콜이 잘못된 작업을 수행했습니다. 수신 작업에 대해서만 반환됩니다.

설명

WebSocketGetAction에 대한 각 호출은 WebSocketCompleteAction 호출과 페어링되어야 합니다.

WebSocketCompleteActionulBytesTransferred 매개 변수가 WEB_SOCKET_SEND_TO_NETWORK_ACTION 작업에 대한 모든 버퍼 길이의 합계와 다르거나 WEB_SOCKET_RECEIVE_FROM_NETWORK_ACTION 작업에 대해 0이면 WebSocket 애플리케이션은 요청된 모든 데이터를 보내거나 받지 않습니다.

WebSocketGetActionpAction으로 반환됩니다.

한 번에 하나의 미해결 송신 및 수신 작업이 있을 수 있으므로 WebSocketCompleteAction을 사용하여 이전 작업이 완료되면 다음 작업이 반환됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 websocket.h
라이브러리 Websocket.lib
DLL Websocket.dll

추가 정보

WEB_SOCKET_ACTION

WEB_SOCKET_ACTION_QUEUE

WEB_SOCKET_BUFFER_TYPE

WebSocketCompleteAction

WebSocketReceive

WebSocketSend