Как подключить SocketIO4Net к Zennoposter?

darkalfa

Client
Регистрация
27.11.2016
Сообщения
9
Благодарностей
0
Баллы
1
Такое возможно вообще?
Пробовали подключать WebSocket4Net.dll и никак
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

Через using или как библиотеку ?
 

darkalfa

Client
Регистрация
27.11.2016
Сообщения
9
Благодарностей
0
Баллы
1
Через using или как библиотеку ?
И так и так)
http://c2n.me/3GVfBvM
Код:
using WebSocket4Net;
WebSocket websocket = new WebSocket("ws://localhost:2012/");
websocket.Opened += new EventHandler(websocket_Opened);
websocket.Error += new EventHandler<ErrorEventArgs>(websocket_Error);
websocket.Closed += new EventHandler(websocket_Closed);
websocket.MessageReceived += new EventHandler(websocket_MessageReceived);
websocket.Open();
private void websocket_Opened(object sender, EventArgs e)
{
websocket.Send("Hello World!");
}
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

И так и так)
http://c2n.me/3GVfBvM
Код:
using WebSocket4Net;
WebSocket websocket = new WebSocket("ws://localhost:2012/");
websocket.Opened += new EventHandler(websocket_Opened);
websocket.Error += new EventHandler<ErrorEventArgs>(websocket_Error);
websocket.Closed += new EventHandler(websocket_Closed);
websocket.MessageReceived += new EventHandler(websocket_MessageReceived);
websocket.Open();
private void websocket_Opened(object sender, EventArgs e)
{
websocket.Send("Hello World!");
}
вам для этого нужно выносить код в Общий код или писать сразу в codecreator.
 

darkalfa

Client
Регистрация
27.11.2016
Сообщения
9
Благодарностей
0
Баллы
1
Да интересно, возможно ли, в принципе, сделать так, чтобы зенно работал с SocketIO?
Код выше здесь особой роли не играет. Это пример, который пытались подключить и проверить на работоспособность.
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
вам для этого нужно выносить код в Общий код или писать сразу в codecreator.
Для начала надо понять, для чего это вообще надо. Какая конечная цель.
Т.к вынести этот код просто так в Общий не получится.
Это надо запилить отдельный класс, в него запихать все это, и уже из экшена C# создавать объект, и вызывать метод, который и будет делать все основное, создавать объект класса WebSocket и подписываться на обработчики.
Но даже этого мало.

Суть в том, что WebSocket работает по событийной модели.
А шаб работает последовательно. Т.е. экшен не будет ждать, пока отработают нужные события.
Как это все упаковать в последовательную работу, это еще надо репу почесать основательно.:-)

Первое что в голову приходит, это делать бесконечный цикл, выход из которого это проверка какого то св-ва, в объекте, в котором будет находится WebSocket.
Т.е. делается цикл(в экшене c#) с задержкой скажем 1 сек. и в цикле идет проверка какого то св-ва, которое будет инициализировано, как только стрельнет нужное событие.

Но это лютые костыли.:D
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

Для начала надо понять, для чего это вообще надо. Какая конечная цель.
Т.к вынести этот код просто так в Общий не получится.
Это надо запилить отдельный класс, в него запихать все это, и уже из экшена C# создавать объект, и вызывать метод, который и будет делать все основное, создавать объект класса WebSocket и подписываться на обработчики.
Но даже этого мало.

Суть в том, что WebSocket работает по событийной модели.
А шаб работает последовательно. Т.е. экшен не будет ждать, пока отработают нужные события.
Как это все упаковать в последовательную работу, это еще надо репу почесать основательно.:-)

Первое что в голову приходит, это делать бесконечный цикл, выход из которого это проверка какого то св-ва, в объекте, в котором будет находится WebSocket.
Т.е. делается цикл(в экшене c#) с задержкой скажем 1 сек. и в цикле идет проверка какого то св-ва, которое будет инициализировано, как только стрельнет нужное событие.

Но это лютые костыли.:D
не туда )
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
вебсокет используется в директе инсты, например
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Для начала надо понять, для чего это вообще надо. Какая конечная цель.
Т.к вынести этот код просто так в Общий не получится.
Это надо запилить отдельный класс, в него запихать все это, и уже из экшена C# создавать объект, и вызывать метод, который и будет делать все основное, создавать объект класса WebSocket и подписываться на обработчики.
Но даже этого мало.

Суть в том, что WebSocket работает по событийной модели.
А шаб работает последовательно. Т.е. экшен не будет ждать, пока отработают нужные события.
Как это все упаковать в последовательную работу, это еще надо репу почесать основательно.:-)

Первое что в голову приходит, это делать бесконечный цикл, выход из которого это проверка какого то св-ва, в объекте, в котором будет находится WebSocket.
Т.е. делается цикл(в экшене c#) с задержкой скажем 1 сек. и в цикле идет проверка какого то св-ва, которое будет инициализировано, как только стрельнет нужное событие.

Но это лютые костыли.:D
Почему бы в кубике не создать делегат, объект класса WebSocket (сам вебсокет создать в общем коде) и подписаться на событие сокета. Может я не всю суть вебсокетов уловил, но с событиями так и делается.
Есть 2 минуса:
1) придется делать все в одном кубике
2) лучше тогда организовать из кубика дополнительный поток
P.S. есть ещё ManualResetEventSlim, который избавляет от необходимости в ожидании действий в бесконечном потоке с паузами и активирует все в нужное время.
 
Последнее редактирование:

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
вебсокет используется в директе инсты, например
Ок. Есть идеи как событийную модель упаковать в зенку?

Почему бы в кубике не создать делегат, объект класса WebSocket (сам вебсокет создать в общем коде) и подписаться на событие сокета.
Что это тебе даст? Тоже х. только в другой руке. Я предлагал сделать обертку поверх класса, чтобы все кишки спрятать в OwnCode, а из экшена только управлять.

Может я не всю суть вебсокетов уловил, но с событиями так и делается.
Да тут без разницы, основная суть что класс работает на основе событий.

лучше тогда организовать из кубика дополнительный поток
Зачем?

P.S. есть ещё ManualResetEventSlim, который избавляет от необходимости в ожидании действий в бесконечном потоке с паузами и активирует все в нужное время.
Ты бы лучше вместо умных речей кусок кода показал который работает.:-)

Вот про что говорил.

SomeClass это любой класс с событиями. Тот же WebSocket.
В конструктор впихнул вызов события, типа эмуляции.

Wrapper это обертка для удобства работы.
Делаем два метода, один для создания нужного объекта, и подписки на события - Create.
Второй - Destroy, чтобы отписаться от событий.

Также для каждого нужного события добавляем св-во, которое будет инициализироваться в обработчике, как только сработает событие.

А теперь собственно логика работы.

Создали объект, подписались на события.
В бесконечном цикле проверяем св-во. Тут уже зависит от кол-ва событий которые будут использоваться(соответственно и такого же кол-ва св-в), и логику продумывать конкретно для каждого случая.
Как выполнилось какое то условие, отписываемся от событий, выходим из цикла.
Делаем такую проверку через какой то промежуток времени. Можно поставить скажем 200мс, должно быть норм.

Если у кого есть идеи как это грамотней сделать, с удовольствием выслушаю, т.к самому интересно.:-)
 
  • Спасибо
Реакции: Radzhab

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

А зачем тут тогда зенка?
 
  • Спасибо
Реакции: Radzhab

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
Подключился к сокету cs.money . Сокеты работают в фоне.


 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)