Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

прошу подсказать по ClientWebSocket

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 25.12.2015, 00:26   #1
 Разведчик
Аватар для JKHKJgj
 
JKHKJgj никому не известный тип
Регистрация: 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
 Разведчик
Аватар для Kacha
 
Kacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауру
Регистрация: 19.09.2012
Сообщений: 38
Популярность: 640
Сказал(а) спасибо: 6
Поблагодарили 43 раз(а) в 29 сообщениях
 
По умолчанию Re: прошу подсказать по ClientWebSocket

Библиотека WebSocket4Net? Если нет, то советую именно ее, остальные все с проблемами.
Отвалов нет вообще, если конечно не отвалится интернет, или сервер
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 25.12.2015, 17:51   #3
 Разведчик
Аватар для JKHKJgj
 
JKHKJgj никому не известный тип
Регистрация: 06.09.2014
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: прошу подсказать по ClientWebSocket

Цитата:
Сообщение от KachaПосмотреть сообщение
Библиотека 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
 Разведчик
Аватар для Kacha
 
Kacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауру
Регистрация: 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
 Разведчик
Аватар для JKHKJgj
 
JKHKJgj никому не известный тип
Регистрация: 06.09.2014
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: прошу подсказать по ClientWebSocket

Цитата:
Получает ответы 1 событие.

Да ! Вот значит у меня в этом месте и ошибка.
Цитата:
ps: для ws и wss использовать стандартный класс не советую.

Да именно с wss у меня сокет работает, а какие проблемы тут могут быть ?
Работает ведь на данный момент, всё отправляется, приходит. За исключением проблемы что выше описал.
  Ответить с цитированием
Старый 26.12.2015, 13:48   #6
 Разведчик
Аватар для Kacha
 
Kacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауру
Регистрация: 19.09.2012
Сообщений: 38
Популярность: 640
Сказал(а) спасибо: 6
Поблагодарили 43 раз(а) в 29 сообщениях
 
По умолчанию Re: прошу подсказать по ClientWebSocket

Цитата:
Сообщение от JKHKJgjПосмотреть сообщение
Да ! Вот значит у меня в этом месте и ошибка.

Да именно с wss у меня сокет работает, а какие проблемы тут могут быть ?
Работает ведь на данный момент, всё отправляется, приходит. За исключением проблемы что выше описал.

Просто зачем городить велосипед, когда есть готовое решение?
а WSS для .NET это велосипед, который с маху не отладишь в добавок, у меня даже для Websocket4net есть небольшой велосипед в виде реконнекта, в случае отвала.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 26.12.2015, 14:04   #7
 Разведчик
Аватар для JKHKJgj
 
JKHKJgj никому не известный тип
Регистрация: 06.09.2014
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: прошу подсказать по ClientWebSocket

Ясно, спасибо за помощь, очень помогли ! Попробовал данную библиотеку, сразу без проблем всё заработало, да и на разных платформах хоть работать будет, имею в виду версии windows а то стандартный сокет реализован только начиная с windows 8, сервер 2012.
  Ответить с цитированием
Старый 26.12.2015, 15:04   #8
 Разведчик
Аватар для Kacha
 
Kacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауруKacha излучает ауру
Регистрация: 19.09.2012
Сообщений: 38
Популярность: 640
Сказал(а) спасибо: 6
Поблагодарили 43 раз(а) в 29 сообщениях
 
По умолчанию Re: прошу подсказать по ClientWebSocket

Цитата:
Сообщение от JKHKJgjПосмотреть сообщение
Ясно, спасибо за помощь, очень помогли ! Попробовал данную библиотеку, сразу без проблем всё заработало, да и на разных платформах хоть работать будет, имею в виду версии windows а то стандартный сокет реализован только начиная с windows 8, сервер 2012.

У меня он на Ubuntu 14.04 работает
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Прошу подсказать KUUL Общение и обсуждение WoW 2 12.08.2011 14:41
Прошу подсказать) Starke Общение и обсуждение Perfect World 1 03.04.2011 15:54

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 22:26.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net