Перейти к содержимому
Totoro

Stem - мультиканальный интернет мост

Рекомендуемые сообщения

Респект таким парням, которые поддерживают и совершенствуют отечественные разработки. :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

То ли я тупой, то ли лыжи не едут. Набросал код с использованием моста, он не заработал, сообщения не доходят. Стал разбираться, открыл веб интерфейс, в нём сообщения видны. На слушателе тишина. Попробовал отправлять из веб интерфейса, тишина. Взял пример из шапки, поменял имя канала, пробую, тишина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, AlexCatze сказал:

...Стал разбираться, открыл веб интерфейс, в нём сообщения видны. На слушателе тишина. ...

То есть конкретно приём не работает?
Попробуй на онлайн Ocelot проверить код - там инет хороший, серверный, файрволы и блеклисты точно не будут мешать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Totoro На оцелоте всё работает прекрасно. Вот код:

local event = require('event') local stem = require('stem') local server = stem.connect('stem.fomalhaut.me') server:subscribe('test') while true do  local name, channel_id, message = event.pull('stem_message')  if name ~= nil then   print(channel_id, message) end end

Вставлял в интерпретатор на оцелоте, потом этот же код в майне. На оцелоте сообщения приходят, в майнкрафте нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
48 минут назад, AlexCatze сказал:

На оцелоте всё работает прекрасно.

Вставлял в интерпретатор на оцелоте, потом этот же код в майне. На оцелоте сообщения приходят, в майнкрафте нет.

Напрашивается вывод о том, что какие-то проблемы с сетью.
Хотя если отправка работает, это странно.
Кто-нибудь ещё может подтвердить такие проблемы при использовании Стема из майна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Totoro сказал:

Кто-нибудь ещё может подтвердить такие проблемы при использовании Стема из майна?

Мб брандмауэр в форточках не пропускает трафик из майна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Totoro сказал:

Кто-нибудь ещё может подтвердить такие проблемы при использовании Стема из майна?

Ну я уже сообщал об этом. Трафик от ОС пропускается через vpn в итоге из игры отправить данные возможно, а обратно получить нельзя. Тут как итог только только несколько варимантов

  • Не использовать vpn но это уже не от нас зависит, а от администации серверов которым явно виднее где у них сервера стоят и что в той стране запрещено.
  • Переделывать мост по типу чата, тоесть чтоб ОС могла спокойно загружать данные, загрузку данных vpn пропускает нормально

Че нужны какие тесты, пингай меня в ирке, за счет дс замечу

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Totoro сказал:

Напрашивается вывод о том, что какие-то проблемы с сетью.
Хотя если отправка работает, это странно.
Кто-нибудь ещё может подтвердить такие проблемы при использовании Стема из майна?

Какие-то странные проблемы. Это точно не сеть, не VPN и сомнительно, что брандмауэр:

- Ocelot Desktop (Lua 5.2) работает замечательно;

- OCEmu (Lua 5.2) не принимает входящие сообщения, но может отправлять;

- Minecraft 1.7.10 (Lua 5.3) работает замечательно.

 

P.S. Я проверял всё с локального компьютера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зашёл на другую сборку, там всё работает как надо. З.Ы. Почему-то поставить либу из hpm не получилось.

UPD:Заработало и на первой сборке, когда поставил Lua 5.3. На Lua 5.2 не работало.

Изменено пользователем AlexCatze

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё хорошо что хорошо кончается :lol:
Я наверняка либу стемовскую на 5.3 писал. Так что будем теперь иметь в виду, что при возникновении проблем надо проверить версию Lua.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 минуту назад, Totoro сказал:

Всё хорошо что хорошо кончается :lol:

Судя по всему, ещё не кончается. Заметил, если на канал подписано несколько слушателей(у меня 3 компа и браузер), сообщения доходят не всем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот блин )
Надо дебажить. Вроде я на веб-клиенте тестировал, и если там толпа веб-клиентов подключена, то особо нет проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня такая картина: веб клиент(для отладки, в нём смотрю, что в мост летит),комп 1(тоже для отладки, подписан на канал, в цикле слушает его), комп 2("роутер", ждёт сообщение от клиента, и должен на него ответить), комп 3("клиент", шлёт сообщение, и ждёт ответ от роутера).

В вебе всё всегда видно прекрасно. С компами замечены такие случаи:

Комп 3 шлёт сообщение, его ловит либо комп 1, либо он сам

Комп 3 шлёт сообщение, его никто не ловит

Комп 3 шлёт сообщение, его ловит комп 2, шлёт сообщение, и его никто не ловит

Комп 3 шлёт сообщение, его ловят компы 2 и 3, комп 2 шлёт сообщение, и его никто не ловит

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прямо таки сообщения Шрёдингера.
Есть подозрение что это библиотека stem под OC не идеально написана. Хотя там много потенциальных мест отказа.
В худшем случае, это фундаментальный косяк OC при работе с TCP сокетами и мне придётся всё таки написать HTTP версию стема. :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Написал я пару программок.

Одна шлёт сообщение с начала в Stem, и через две секунды, его же в модем, а потом ещё две секунды ждёт.

pastebin run HWVxJ3qs

Вторая, слушает сообщения с модема и со Stem`a. Если приходит сообщение со Stem`a - заносит его в таблицу. Если приходит с модема - проверяет наличие сообщения в таблице. Если сообщение там есть - говорит "OK", если его там не оказалось - ругается, и говорит содержание затерявшегося сообщения.

pastebin run UzqYheFk

Ставим два компа, запускаем на них программки, и на принимающей стороне видим такую картину:

1812082170_.png.15c2df0b5630d79b36624b92618da74a.png

При этом в веб-версии потерянные сообщения видны.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выглядит как будто в какой-то момент сокет отвалился.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 24.02.2021 в 16:18, Totoro сказал:

Выглядит как будто в какой-то момент сокет отвалился.

Скорее всего, причина здесь проще: до библиотеки (может быть, не проверял) не доходит событие internet_ready.

 

Проверял свой Thundernet и столкнулся с той же проблемой: программа не получает часть сообщений.

Причём:

1) на ocelot.fomalhaut.me всё работает хорошо;

2) интернет во время теста работал нормально, без потерь пакетов вообще;

3) при посылке сообщения через веб-мордочку оно доходит примерно в трети случаев.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 21.11.2018 в 02:02, Totoro сказал:

 

Если кто-нибудь хочет помочь с написанием клиента STEM на своём любимом языке программирования - обращайтесь ко мне в ЛС, IRC или пишите в этой теме. Написать клиент несложно - для примера можно глянуть на код библиотеки для OpenComputers. Она состоит всего из 150 строк кода.

Да да всё изи всего каких то 150 неа уже 219 строк не понятного для меня кода... жесть

не по факту 200+ строк это реально мало но проблема что в них ни фига не понятно (покрайней мере для меня)

 

и как мне написать что бы это работало на python или c# я хз

 

Изменено пользователем Bumer_32

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Bumer_32

Хорошо, вот 62 строки: https://gist.github.com/ProgramCrafter/3b6a2faa6f4da3f74b0ca52b5aee4dc5

Самый базовый код, без обработки ошибок, но некоторое время может работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...