|
прошу подсказать по ClientWebSocket - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
25.12.2015, 00:26
|
#1
|
|
|
|
Разведчик
|
Регистрация: 06.09.2014
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
|
прошу подсказать по ClientWebSocket
Доброго времени суток. Подскажите пожалуйста по работе с сокетом, а то у меня что то не получается.
В программе в полях класса создаю переменную
private ClientWebSocket ws=null;
далее в обработчике загрузки формы создаю подключение
ws.ConnectAsync(uri, cts.Token);
И далее в методах обмениваюсь данными с сервером, сервер не мой работаю с ним посредством API запросов, так вот проблемма в том что через минуты 2 примерно выпадает исключение
"WebSocket находится в недопустимом состоянии ("Aborted")
Пару раз натыкался что сервер закрыл соединение и.т.д.
Так вот вопрос, как правильно работать с сокетом ? Уже начинаю думать что каждый раз перед каждым запросом создавать новое подключение и после передачи данных закрывать соединение, но мне кажется так неправильно. Подскажите как правильно работать с сокетом ?
|
|
|
25.12.2015, 08:45
|
#2
|
|
|
|
Разведчик
|
Регистрация: 19.09.2012
Сообщений: 38
Популярность: 640
Сказал(а) спасибо: 6
Поблагодарили 43 раз(а) в 29 сообщениях
|
Re: прошу подсказать по ClientWebSocket
Библиотека WebSocket4Net? Если нет, то советую именно ее, остальные все с проблемами.
Отвалов нет вообще, если конечно не отвалится интернет, или сервер
|
|
|
25.12.2015, 17:51
|
#3
|
|
|
|
Разведчик
|
Регистрация: 06.09.2014
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
|
Re: прошу подсказать по ClientWebSocket
|
Цитата: |
|
|
|
|
|
|
|
|
|
Библиотека WebSocket4Net? Если нет, то советую именно ее, остальные все с проблемами.
Отвалов нет вообще, если конечно не отвалится интернет, или сервер
|
|
|
|
|
|
Нет стандартная из пространства имён System.Net.WebSocket
Спасибо за подсказку, возможно попробую если со стандартной ничего не выйдет, не хотелось пользоваться сторонними библиотеками.
Добавлено через 4 часа 57 минут
Ещё один момент, возможно моя ошибка в этом и заключается, просто не работал раньше с сокетами.
В методе отправляю запрос:
await ws.SendAsync(Request, WebSocketMessageType.Text, true, cts.Token);
и тут же в этом же методе жду ответ:
result = await ws.ReceiveAsync(buffer, CancellationToken.None);
Не в этом ли заключается моя ошибка ? Возможно для приёма ответов нужно повесить на ответ обработчик и уже там принимать все ответы ? И из-за этого видимо он мне выбрасывает исключение якобы данное соединение уже активно, так как я каждый раз создаю новый слушатель что-ли. Подскажите как правильно ? Буду очень рад любому пинку в нужном направлении
PS: У меня несколько таких методов которые отправляют и получают разные данные.
Последний раз редактировалось JKHKJgj; 25.12.2015 в 23:48.
Причина: Добавлено сообщение
|
|
|
26.12.2015, 01:42
|
#4
|
|
|
|
Разведчик
|
Регистрация: 19.09.2012
Сообщений: 38
Популярность: 640
Сказал(а) спасибо: 6
Поблагодарили 43 раз(а) в 29 сообщениях
|
Re: прошу подсказать по ClientWebSocket
У меня сам сокет в отдельном потоке
открываем соединение, подписываем его на получение ответов
а отправка осуществляется с некоторых методов по-коду.
То есть соединение открывается 1 раз.
Получает ответы 1 событие.
Отправляются данные откуда угодно.
ps: для ws и wss использовать стандартный класс не советую.
Последний раз редактировалось Kacha; 26.12.2015 в 01:44.
|
|
|
26.12.2015, 05:08
|
#5
|
|
|
|
Разведчик
|
Регистрация: 06.09.2014
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
|
Re: прошу подсказать по ClientWebSocket
|
|
|
26.12.2015, 13:48
|
#6
|
|
|
|
Разведчик
|
Регистрация: 19.09.2012
Сообщений: 38
Популярность: 640
Сказал(а) спасибо: 6
Поблагодарили 43 раз(а) в 29 сообщениях
|
Re: прошу подсказать по ClientWebSocket
|
|
|
26.12.2015, 14:04
|
#7
|
|
|
|
Разведчик
|
Регистрация: 06.09.2014
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
|
Re: прошу подсказать по ClientWebSocket
Ясно, спасибо за помощь, очень помогли ! Попробовал данную библиотеку, сразу без проблем всё заработало, да и на разных платформах хоть работать будет, имею в виду версии windows а то стандартный сокет реализован только начиная с windows 8, сервер 2012.
|
|
|
26.12.2015, 15:04
|
#8
|
|
|
|
Разведчик
|
Регистрация: 19.09.2012
Сообщений: 38
Популярность: 640
Сказал(а) спасибо: 6
Поблагодарили 43 раз(а) в 29 сообщениях
|
Re: прошу подсказать по ClientWebSocket
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] Прошу подсказать
|
KUUL |
Общение и обсуждение WoW |
2 |
12.08.2011 14:41 |
Прошу подсказать)
|
Starke |
Общение и обсуждение Perfect World |
1 |
03.04.2011 15:54 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 18:03.
|
|