@proelixir

Страница 644 из 1045
Vladimir
04.07.2017
05:17:16
..., а почему.

Korolll
04.07.2017
05:17:38
И как я и говорил я не отказываюсь от потоков в целом, а просто хочу использовать более продуманную высокоуровневую версию

Там нет никакой магии и это не мешает пониманию, так почему бы и нет

Dmitry
04.07.2017
05:28:16
В потоках эрланга нету магии. А ещё в Эрланге нету низкоуровневых и высокоуровневых потоков, поэтому я перестал понимать о чем вообще идёт речь

Google
Константин
04.07.2017
06:10:58
Ребят вопрос по проектированию. Нужно написать сервер на erlang cowboy. Сервер по игре в дурака (это не единственный сервер так что в его задачу входит просто игровой процесс, отображение историй игр и запись их в базу). На данный момент это выглядит следующим образом. Простенькие вьюхи для создания комнат(каналов) и возможность подсоединиться к ним по websocket. Есть отдельное приложение которое умеет запускать новый менеджер игры, подвязанный к комнате. Он в свою очередь запускает два генсервера чат и саму игру. Вопрос в том, можно ли сделать это проще и как реализовать алгоритм принятия решений по умолчанию не используя низкоуровневые потоки?
Я не понял вопроса, возможно. У вас и так есть генсервера чата и игры. Генсервер игры с каждым ходом запускает таймер на проверку выполнения хода. Когда время истекает - выполняется действие по умолчанию и вебсокетом отправляется к пользователям. О каких потоках идет речь?

Korolll
04.07.2017
06:45:16
Я не понял вопроса, возможно. У вас и так есть генсервера чата и игры. Генсервер игры с каждым ходом запускает таймер на проверку выполнения хода. Когда время истекает - выполняется действие по умолчанию и вебсокетом отправляется к пользователям. О каких потоках идет речь?
Всё верно только не таймер а поток. Так как таймер это просто событие отложенное по времени и это не совсем то что нужно. То есть первое, что пришло мне в голову, это запускать с каждым новым ходом новый spawn с заданным тайм-аутом, но есть какое-то внутреннее чувство, что это не очень хорошо

Константин
04.07.2017
06:46:35
задача уменьшить количество потоков?

или делай на стороне клиента

Korolll
04.07.2017
06:54:04
задача уменьшить количество потоков?
В общем то задача просто закончить проект, он кажется простым, но для меня оказался достаточно сложным уже неделю бьюсь только над erlang сервером. И возник резонный вопрос, возможно я что-то делаю не так и всё усложняю? Плюс ко всему каноничное приложение otp можно представить, как древо супервизоров и страно создавать процесс внутри genserver.

Константин
04.07.2017
06:54:38
это норма

сделайте реальный таймер вебсокетом

Dmitry
04.07.2017
06:55:00
Это не норма

На стороне клиента вообще ничего из игровой логики быть не должно

Константин
04.07.2017
06:55:34
чтобы каждую секунду отправлялось значение к клиенту

если игрок сделал ход - код уходит дальше и счетчик обновляется

пусть этот счетчик будет отдельным генсервером

Korolll
04.07.2017
06:56:32
сделайте реальный таймер вебсокетом
Таймер ведь просто будет работать на закрытие websocket соединения, а мне нужно отправить запрос в genserver

Google
Dmitry
04.07.2017
07:00:26
Игровой процесс это fsm

Не нужно больше одного сервака на игру

При инициализации- ссылкк на канал и ид полтзователей

А временем манипулировать с помощью process send after

Хотя каналы только в фениксе, так что ссылка на сокет

Да хоть бы даже timer.sleep

Хотя нет, sleep нельзя

Process send after

Dmitry
04.07.2017
07:12:10
Вы в gen_statem смотрели?

Я читал по диагонали еще, но там есть такие штуки, как event_timeout, например

Dmitry
04.07.2017
07:21:46
Не очень мне понятно зачем нужна эта штука, хотя возможно я тоже по диагонали читал

Dmitry
04.07.2017
07:34:38
Я так понял, что когда истечет таймаут, автоматически сгенерится указанный ивент. И ты из стейта можешь перейти в другой

Dmitry
04.07.2017
07:35:11
Вроде как такое есть и просто в gen server

Хотя я не очень силён в понимании доков эрланг

Korolll
04.07.2017
07:46:49
Я так понял, что когда истечет таймаут, автоматически сгенерится указанный ивент. И ты из стейта можешь перейти в другой
Либо когда истечёт тайм-аут, либо раньше если прийдёт соответствующее сообщение

Vladimir
04.07.2017
08:46:42
сцук, мне опять телеграм показал некросообщения, а я давай их комментить)

Dmitry
04.07.2017
09:24:04
У меня такое ощущение, что на djinni.co только украинские рекруитеры...

Marat
04.07.2017
09:30:47
У меня такое ощущение, что на djinni.co только украинские рекруитеры...
Очень подозрительно. На украинском сайте еще и рекруитеры украинские...

Dmitry
04.07.2017
09:41:06
Ну мне обещали разных :-D

Taras ?
04.07.2017
13:22:53
всем доброго дня! прошу посоветовать гайд/статью о создании приложения на cowboy (чет я в доку не вьезжаю а гуглятся кусочки какие-то...)

Google
Taras ?
04.07.2017
13:29:08
+ гуглятся в основном эликсир-поверх-ковбоя, мне же интересно эрланг-приложение( что делать? как гуглить? (может я как-то не так гуглю)

Vladimir
04.07.2017
13:48:12
https://www.google.com/search?q=how+to+make+erlang+cowboy+application&oq=how+to+make+erlang+cowboy+application

а так?

Korolll
04.07.2017
13:53:25
+ гуглятся в основном эликсир-поверх-ковбоя, мне же интересно эрланг-приложение( что делать? как гуглить? (может я как-то не так гуглю)
Любое cowboy приложение состоит в упрощённом случае из роутинга и хендлеров. С роутингом вроде всё понятно это erlang терм с URL и ссылкой на хендлер. Внутри самого ковбоя есть масса готовых примеров (папка examples), которых можно запустить в папке example. В общем суть моего послания в том, что простейший ковбой сервер можно представить, как маршрутизатор и кучу вьюх, там нет какой-то глобальной и сложной архитектуры, долгой настройки он задумывался простым и прозрачным.

Andrey
04.07.2017
13:56:23
у них раньше (очень давно) была беда что примеры от одной версии ковбоя, а доки от другой, но я надеюсь что они уже поправили уже. Во всяком случае примеры там довольно понятные

Alexey
04.07.2017
13:58:48
чят, а кто-нибудь имел счастье использовать vue.js + brunch? а то у меня нэ робит :( https://stackoverflow.com/questions/44889754/is-it-possible-to-work-with-vue-loader-under-brunch

Alexey
04.07.2017
14:21:34
Удаляешь brunch вставляешь webpack
не - ну так не интересно :)

Kioshimafx
04.07.2017
14:23:38
Webpack+React.js идеально с фениксом варятся

Taras ?
04.07.2017
14:23:41
а так?
? благодарямс)

Kioshimafx
04.07.2017
14:23:59
Чудный эликсир ))

Dmitry
04.07.2017
14:24:17
"Здрасте, хочу забить гвоздь микроскопом, молоток не предлагать"

Taras ?
04.07.2017
14:26:49
"Здрасте, хочу забить гвоздь микроскопом, молоток не предлагать"
Сохацкий сказал что я что-то делаю не так, если с помощью n2o ловлю пост-запросы, отправил меня ковбой изучать ))

Andrey
04.07.2017
14:31:56
может он троллил? )

вон у него в семплах тоже https://github.com/synrc/n2o/blob/master/samples/apps/review/src/users.erl post запросы есть

Kioshimafx
04.07.2017
14:45:05
Написано же "protocol for websockets" ?

?

Andrey
04.07.2017
14:48:21
нене у него же разные протоколы есть

Kioshimafx
04.07.2017
14:54:55
Да я шучу :)

Google
Admin
ERROR: S client not available

Taras ?
04.07.2017
16:20:21
вон у него в семплах тоже https://github.com/synrc/n2o/blob/master/samples/apps/review/src/users.erl post запросы есть
я не догнал как этот n2o-rest юзать) навелосипедил собственный post, работает вроде

Max
04.07.2017
21:48:06
а помните недавно какой-то язык появился на ллвм вроде, с акторами?

циклон что ли

название похожее

как называется?

https://www.ponylang.org/

вот это походу

Andrey
05.07.2017
06:13:56
Ну не так уж и недавно

Korolll
05.07.2017
13:38:45
Народ, а супервизор стартует воркеры в порядке указанном в спецификации?

Vladimir
05.07.2017
13:45:52
Народ, а супервизор стартует воркеры в порядке указанном в спецификации?
ЕМНИП да. В доке об этом чётко написано, насколько я помню.

Andrey
05.07.2017
13:46:01
да

Vladimir
05.07.2017
13:49:26
Главное, чтобы init отработал быстро. Или хотя бы proc_lib:init_ack() послать пораньше. А то реально обработка мессаг может начаться в разных воркерах в разное время.

Alexander
05.07.2017
21:36:30
Ребза, а кто-нибудь уходил от подписок на фениксовые каналы с клиента на сервер? :)

Rumata
05.07.2017
22:01:26
Что именно тебя интересует

Можно ведь в джс там leave

И все вроде

Alexander
05.07.2017
22:02:51
не, джс не юзаем, своя реализация либ на клиентах android/ios, задолбались менеджить подписки с клиента, хочется двигать на серв эту логику

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

Google
Alexander
05.07.2017
22:16:29
https://github.com/phoenixframework/phoenix/blob/master/lib/phoenix/socket/transport.ex#L246 тут вот просто оно юзает кастомный Phoenix.Socket, который билдится там же в транспорте и по сути юзать из другого места Phoenix.Channel.Server.join не получится без копипасты всей этой херни :)

проще всего свой транспорт пильнуть видимо

Rumata
05.07.2017
22:31:18
Ну я вот столько гемора с этими сокетами повидал

Ты вот используешь фул дуплекс?

Или только дату просто по ним отдаёшь аля рест?

Alexander
05.07.2017
22:36:35
у нас там весело всё ;) реквест/респонс + лайв эвенты, эвенты между серверами с федерализацией

что-то давно не было релизов феникса, не сдох бы он часом

Vladimir
06.07.2017
04:08:04
что-то давно не было релизов феникса, не сдох бы он часом
Или там уже всё запилили и больше ничего не нужно. :)

Yura
06.07.2017
05:38:05
2 марта был релиз, вроде как не сильно давно...

/stat@combot

Страница 644 из 1045