
Alexander
14.02.2018
09:44:00
тем более, если это сайт знакомств, то вероятно там должна быть возможность пообщаться в реальном времени, а следовательно придется что-то писать для получения сообщений

Ivan
14.02.2018
09:45:21
Да, тоже об этом только что подумал, так что в двойне спасибо

Alexander
14.02.2018
09:47:42
минус всего этого добра: придется ковыряться с, простите, node.js
как вариант, чтобы уменьшить свою боль, можно реализовать однонаправленную связь между клиентом, php-бекендом и сокет-сервером. оставить двунаправленную между сокет-сервером и php только для оповещения об отключении пользователя и проверки авторизации

Google

Jimm
14.02.2018
09:57:35
если так не хочется именно ноду - есть и на пхп технологии

Alexander
14.02.2018
09:58:27
пробовал, пока сыроваты

Ivan
14.02.2018
09:58:54

Alexander
14.02.2018
09:59:25
например вот: https://github.com/walkor/phpsocket.io

Jimm
14.02.2018
10:00:21
workerman вообще штучка прикольная

Alexander
14.02.2018
10:00:25
ну и целая пачка пакетов от https://github.com/reactphp

Jimm
14.02.2018
10:00:31
https://github.com/ratchetphp/Ratchet

Ivan
14.02.2018
10:01:30
Спасибо, посмотрю

Alexander
14.02.2018
10:07:14
когда писал сервер уведомлений, первым делом посмотрел в сторону ratchet. в итоге отказался от него потому что за 8 часов так и не удалось ничего путного сделать.
требования были такие:
слушать входящие соединения, если это websocket, то добавлять пользователя в пул, если это просто http запрос, то по списку id пользователей из запроса отправить тело запроса всем пользователям.
вроде задача не сложная, но на ратчете сложновато реализовать. на socket.io + express сделал за час + в комплекте к socket.io идет простая в использовании клиентская библиотека

Jimm
14.02.2018
10:08:17
можно ratchet + любой фреймворк для остального

Alexander
14.02.2018
10:09:03
я застрял на том, чтобы заставить одновременно слушать и вебсокеты и обычные http запросы

Jimm
14.02.2018
10:09:04
а хотя нет, не удобно будет, вчитался в задачу

Alexander
14.02.2018
10:09:24
потому что в ратчет данные должны приходить от php-бекенда

Google

Борис
14.02.2018
10:39:48
https://github.com/ansible/ansible/issues/36095

Evgeniy
14.02.2018
10:45:58

Alexander
14.02.2018
10:46:46

Bohdan
14.02.2018
10:47:05
ну там ведь code of conduct соблюдают
все вежливые
слишком рано закрыли тред :D

Alexander
14.02.2018
10:47:25
ну кроме ТСа)

Bohdan
14.02.2018
10:47:44
ТС написал и ушел плакать от переизбытка эмоций :D

Ivan
14.02.2018
10:51:43
и что фигарит на /socket.io - тупо редиректить траффик на любой другой порт socket.io

Alexander
14.02.2018
10:53:13
да в случае socket.io можно не извращаться с редиректами, там оно из коробки работает

Ivan
14.02.2018
10:53:42
но держать коннект для сокета на пхп, ну нафиг если честно) пхп не для этого

Alexander
14.02.2018
10:54:07
ну вот потому и остался на socket.io

Ivan
14.02.2018
10:54:13
ну и правильно
а так я думаю тебе пришлось бы еще юзать redis, и там данными кидаться
типо общая шина, а так у тебя общая шина в js коде

Alexander
14.02.2018
10:57:20
ну это уже перебор был бы. у меня пока вообще никакой шины нет, на мой взгляд, шина нужна для организации общения между разными подсистемами, а тут просто закольцевал общение и все:
Client A -> PHP API -> socket.io -> Client B

Ivan
14.02.2018
10:58:15
а почему не сделать так что бы Client A -> socket -> Client B
?
или действия клиента А покрыты бизнес логикой?

Alexander
14.02.2018
10:59:27
да, там немного логики есть: access control, запись в бд и тому подобное

Ivan
14.02.2018
11:00:09
client B, это просто второй чувак с браузером я так понимаю?

Google

Alexander
14.02.2018
11:00:22
да
оба клиента -- браузеры с открытой страничкой на vue.js
запилить апишку, лично мне, проще на php, чем на ноде, потому остановился на таком варианте

Bohdan
14.02.2018
11:04:13
centrifugo не подойдет? Сергей любит его рекламить)

Alexander
14.02.2018
11:06:06
походу я его и переизобрел...
твоюжежмать! всё что нужно в одной коробке

Sergey
14.02.2018
11:43:01

Alexander
14.02.2018
11:53:58
если чисто уведомляшки нужны - лучше взять centrifugo - меньше проблем будет
ну вот да, но менять сервис уже не хочется) пока нагрузка ~5 уведомлений в секунду, можно забить. мой вариант состоит из пары сотен строк и пока проблем не вызывает, как вызовет -- выкину.
по задаче: нужно от сервиса слать данные в браузеры, а на стороне браузера уже их разбирать и смотреть что с ними делать: разобрать и положить в локальную БД + положить в Vuex, вывести как нотификацию в углу и т.д.

Sergey
14.02.2018
11:54:44

Alexander
14.02.2018
11:55:04
одни только SaaS варианты попадались

Bohdan
14.02.2018
11:56:32
это вообще беда
такие вот случаи, когда сделал неоптимально потому, что не знал про другие варианты/подходы
чаты спасают, но не всегда
без них вообще грусть

Alexander
14.02.2018
11:58:13
ну я честно гуглил перед тем как начать кодить ?

Bohdan
14.02.2018
11:59:34
так гуглить же обычно не знаешь, как)

Alexander
14.02.2018
12:04:49
единственное, что на первый взгляд не очень понравилось в центрифуге: там нужно токен генерить какой-то их местный и я, бегло взглянув в доки, не увидел возможности использовать существующий токен.

Sergey
14.02.2018
12:06:29
так гуглить же обычно не знаешь, как)
4 месяца назад мне нужна была тула которая позволит мне накидать SQL запросики параметризованные что бы та сгенерила UI и позволяла быстро получать выборки за период например. И я ничего не нашел. Нашел кучу сервисов и тулов для анализа данных и "эксплорейшена" но никто не умел в параметры. Позавчера случайно набрел на такую тулу (правда дикий трэш на php который не обновлялся уже лет 5 нормально, но работает). Причем я тогда интересовался в чатах.

Google

Sergey
14.02.2018
12:06:51
по своему токену ты получаешь токен для центрифуги и уже с ним коннектишься

ainu
14.02.2018
12:09:33

Alexander
14.02.2018
12:09:41
ну а у меня пока используется один токен и для сервера уведомлений и для php api, и выдает его сервер авторизации. чет хз как это интегрировать =(

Sergey
14.02.2018
12:10:00

ainu
14.02.2018
12:10:14
можно как сделать

Alexander
14.02.2018
12:10:20
если у всех будут свои токены, то, боюсь на клиенте работы поприбавится)

Sergey
14.02.2018
12:10:20
а лучше - надо подклчиться к центрифуге - сходи на сервер авторизации и получи для него токен

ainu
14.02.2018
12:10:27
делаешь один токен на всех сразу

Sergey
14.02.2018
12:10:29

ainu
14.02.2018
12:10:50
но подписываться на сообщенеи с именем например
message_34272498234234
popup_34272498234234
где 34272498234234 внутренний токен

Sergey
14.02.2018
12:10:58
сложно и кастыли при сомнительном профите
HMAC идеален для ситуаций когда ты ХЗ как авторизация происходит
и нечего выдумывать всякую чушь
(только если ты реально знаешь что делаешь - тогда можно))

Bogdan
14.02.2018
12:17:24
Почему exception может не ловиться в блоке catch (\Exception $e) ?? Он же вроде любой словить должен, нет?
сама ошибка - кривой аргумент в конструкторе \DateTime

Sergey
14.02.2018
12:19:25
хз, надо смотреть весь код и возможно там не exception а throwable

Google

Bohdan
14.02.2018
12:27:55
только что коллегу пм порадовал
вопрос от нее: "а на чем ты еще пишешь, кроме мадженто? на php тоже, да?"
коллега ларавельщик, на проекте отдает со своей стороны товары на мадженто через отдельный эндпоинт

Maksim
14.02.2018
12:30:02
как вспомню прошлую работу, как вздродгну... толпа мадженто девелоперов, которые не могу нжинкс от мемкеша отличить...

Bohdan
14.02.2018
12:30:52
ну, маджентовцы у нас в адеквате
правда, ленивые (более ленивые, чем остальные прогеры)
но это потому, что у них модули слишком легко ставятся

Alexander
14.02.2018
12:31:08
магента - новый ЯП походу

Bohdan
14.02.2018
12:31:28
маленькое островное государство
это как Океанию выделяют в отдельную группу/"континент"
так в php нужно выделять Екоммерцию

Alex
14.02.2018
17:31:43
Как проверить есть ли у объекта свойство?
property_exists?

Anatoly
14.02.2018
17:39:38
isset($obj->prop), $obj->prop ?? null , при условии что __isset нормально написан или не тронут вовсе

Evgenii
14.02.2018
17:40:02
Как проверить , если у объекта свойство в мадженте

Arthur
14.02.2018
19:25:21
Хотелось бы узнать, кто-нибудь работал фулл тайм на удаленке? Это вообще реально быть полноправным сотрудником компании и жить в другом городе? Имею в виду получать белую зп, отпуск, больничный и тд

Sergey
14.02.2018
19:33:15

Valentin
14.02.2018
19:33:16

Sergey
14.02.2018
19:33:44
работаю сейчас фултайм на удаленке - иногда скучаю по офису (когда надо быстро вопросы порешать а созвониться сложно у всех)

Arthur
14.02.2018
19:34:06
Круто, спасибо)

Sergey
14.02.2018
19:42:56
легальнее чем в офисах)

Arthur
14.02.2018
19:44:23

Sergey
14.02.2018
19:45:00
Контактеры ?)
да, заключается контракт с компанией на год что я предоставляю свои услуги, каждый месяц выплачивают деньги и подписывается акт о выполненных работах
в принципе тоже самое что и в офисе
в Украине)