Я пытаюсь непрерывно прослушивать сервер для установления соединения, чтобы всякий раз, когда сервер был доступен, клиент устанавливал соединение.
Пример кода следующий:
internal async Task ConnectAsync()
{
try
{
if (myWebSocketClient.State != WebSocketState.Open)
{
myWebSocketClient.ConnectAsync(InitUri(), CancellationToken.None).Wait(myCancellationToken);
OnConnectionChange(true, aNumberOfConnectionTries);
}
}
catch (Exception aException)
{
Console.WriteLine("An error occured while connecting to server {0}", aException);
OnConnectionChange(false, aNumberOfConnectionTries);
aNumberOfConnectionTries++;
await ConnectAsync();
}
}
Впервые появляется сообщение об ошибке «Невозможно подключиться к удаленному серверу», что имеет смысл, так как сервер недоступен. Но в следующий раз я получаю сообщение об ошибке "" Невозможно получить доступ к удаленному объекту. \ R \ nИмя объекта: 'System. Net .WebSockets.ClientWebSocket'. "
Я понимаю ошибку, но не понимаю Я не понимаю, почему объект клиента удаляется. Является ли объект клиента действительным только для одного запроса на подключение.
Я попытался создать новый объект клиента websocket внутри метода connect, в этом случае он работает хорошо.
Я хочу понять это поведение. Пожалуйста, поймите, что я новичок в программировании сокетов.