Я пытаюсь заставить веб-сокеты работать на Гололенах.У меня в настоящее время есть StreamSocketListener, действующий как сервер на Hololens.Запрос на обновление веб-сокета получен, и я правильно выполняю квитирование веб-сокета, сокет остается открытым как на клиенте, так и на сервере.
Однако тип сокета, который делает рукопожатие, является StreamSocket, а не StreamWebSocket, и я могу 'Кажется, что в сокете написано:
private async void ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs eventArgs)
{
RequestHandler.Request request = await RequestHandler.ParseRequest(eventArgs.Socket.InputStream);
RequestHandler.Response response = RequestHandler.ProcessRequest(request);
byte[] encodedResponse = Encoding.UTF8.GetBytes(response.mHeader);
await eventArgs.Socket.OutputStream.WriteAsync(encodedResponse.AsBuffer());
if (null != response.mTextContent || null != response.mBinaryContent)
{
if (null != response.mTextContent)
{
encodedResponse = Encoding.UTF8.GetBytes(response.mTextContent);
}
else
{
encodedResponse = response.mBinaryContent;
}
await eventArgs.Socket.OutputStream.WriteAsync(encodedResponse.AsBuffer());
}
if (request.mWebsocketUpgrade)
{
receivedSocket = eventArgs.Socket;
}
else
{
eventArgs.Socket.Dispose();
}
}
Возможно ли «обновить» или «преобразовать» полученный сокет в StreamWebSocket или этот подход некорректен и должен идти другим путем?
Любой совет будет высоко ценится!