in Source/Global/perform_env.cpp [103:178]
WebSocketPerformInfo HC_PERFORM_ENV::GetPlatformDefaultWebSocketHandlers()
{
#if HC_UNITTEST_API
return WebSocketPerformInfo{
WebSocketConnectAsyncDefault,
WebSocketSendMessageAsyncDefault,
WebSocketSendBinaryMessageAsyncDefault,
WebSocketDisconnectDefault,
nullptr
};
#elif HC_PLATFORM == HC_PLATFORM_WIN32
// Use WinHttp WebSockets if available (Win 8+) and WebSocketpp otherwise
auto webSocketExports = WinHttpProvider::GetWinHttpWebSocketExports();
if (webSocketExports.completeUpgrade && webSocketExports.send && webSocketExports.receive &&
webSocketExports.close && webSocketExports.queryCloseStatus && webSocketExports.shutdown)
{
return WebSocketPerformInfo{
WinHttpProvider::WebSocketConnectAsyncHandler,
WinHttpProvider::WebSocketSendAsyncHandler,
WinHttpProvider::WebSocketSendBinaryAsyncHandler,
WinHttpProvider::WebSocketDisconnectHandler,
nullptr
};
}
else
{
return WebSocketPerformInfo{
WebSocketppConnectAsync,
WebSocketppSendMessageAsync,
WebSocketppSendBinaryMessageAsync,
WebSocketppDisconnect,
nullptr
};
}
#elif HC_PLATFORM == HC_PLATFORM_GDK
return WebSocketPerformInfo{
WinHttpProvider::WebSocketConnectAsyncHandler,
WinHttpProvider::WebSocketSendAsyncHandler,
WinHttpProvider::WebSocketSendBinaryAsyncHandler,
WinHttpProvider::WebSocketDisconnectHandler,
nullptr
};
#elif HC_PLATFORM == HC_PLATFORM_UWP || HC_PLATFORM == HC_PLATFORM_XDK
return WebSocketPerformInfo{
WinRTWebSocketConnectAsync,
WinRTWebSocketSendMessageAsync,
WinRTWebSocketSendBinaryMessageAsync,
WinRTWebSocketDisconnect,
nullptr
};
#elif HC_PLATFORM == HC_PLATFORM_ANDROID
return WebSocketPerformInfo{
WebSocketppConnectAsync,
WebSocketppSendMessageAsync,
WebSocketppSendBinaryMessageAsync,
WebSocketppDisconnect,
nullptr
};
#elif HC_PLATFORM_IS_APPLE
return WebSocketPerformInfo{
WebSocketppConnectAsync,
WebSocketppSendMessageAsync,
WebSocketppSendBinaryMessageAsync,
WebSocketppDisconnect,
nullptr
};
#else
return WebSocketPerformInfo{
WebSocketConnectAsyncDefault,
WebSocketSendMessageAsyncDefault,
WebSocketSendBinaryMessageAsyncDefault,
WebSocketDisconnectDefault,
nullptr
};
#endif
}