but1head

but1head

Был в сети 04 ноября 2021, 20:02
Заказы принимаю
Вот Николай не позволяешь ты себе обойти мою тему стороной, «а там вот так плохо», «не так как надо», «А тут возможности гораздо шире».

1) Ты мне писал «У тебя только GET запросы, а когда будут другие?». Теперь
посмотри на либу которую ты используешь, я там только GET и увидел. Меня не прикалывает использовать либу из 6 файлов, вместо 3х функций внутри компонента.

2) Твой клиент не работает с socketio и не будет. Для меня главное чтоб socketio понимал входящие сообщения, у него эвент и дата разделены, именно поэтому там где-то стояло 42/. Почему socketio? Да потому что это фреймоврк для сокетов, с серверной и фронтэнд частью.

3) Послать заказы из двух магазинов на один сервер? Укажи в настройке modnodejs_host адрес на который все будет отправляться. Я вообщем то и согласен, что кому-то понадобиться отправить в другое место это дело, поэтому добавлю 3й параметр хоста в ->emit($action, $data, $host);

Перестань уже при каждой возможности тыкать в мою тему, хочешь помочь — пиши\предлагай на гитхабе и\или личке. Все что я увидел за 2 дня: «Никита все очень плохо, я не могу сделать систему мониторинга для моего компонента из твоего компонента, надо тебе это доработать.» и «Всем привет, Никита не доработал свой компонент, поэтому я сделал ЛУЧШЕ и он будет работать с моим компонентом, да и возможностей у меня больше». Уже смешно.

Ну и самое главное: у меня готовое бесплатное решение для реалтайма (фронт и бэк), у тебя просто отправлялка которая на данный момент работает только с твоим не бесплатным компонентом.
А кто мешает разруливать в ноде запросы с фронтэнда?

фротнэнд
socket.emit('event-to-node', {test: 1});
node
socket.on('event-to-node', function(data){ 
	console.log(data); //test = 1;
	console.log(socket.handshake.user); // modx user с группами
});
Далее из ноды делайте что хотите. Хотите обращайтесь в Modx, шлите ответ обратно, подключайтесь к любому апи и тд.

Конкретно моя «связка» включает для себя ВОЗМОЖНОСТЬ соединиться с модкс, если вам это не надо — не делайте, мы все же на modx.pro сидим а не на zachem-modx-v-nodejs.pro
shop1.ru
shop2.ru
shop3.ru

modxclub.ru — нода

у всех стоит modnodejs в настройке modnodejs_host прописан modxclub.ru

Далее ты рулишь всеми соединениями, но тут уже придется переделывать логику сервера, ввиду того, что проверяет сессиию он на одном modx
e. То что ты хочешь не общее решение, а конкретно под тебя. Вот мне например не нужно собирать данные с кучи сайтов, каждый сайт это отдельный клиент и тд. А ты строишь какой-то проект мультистатистики и хочешь готовое решение использовать.

Еще раз, то что я предлагаю это работа ОДНОГО nodejs сервера с одним MODX (не важно кол.во контекстов\доменом). Я не сомневаюсь что кому-нибудь поможет то, что я сделал, да и на гитхабе все исходники, кому нужно разовьет проект для себя, кому-то хватит того, что есть.

Давай закончим. Если хочешь что-то предложить — пул реквест на гитхаб или личка.
И зачем мне отправлять запрос на твой адрес? Или на чужой?
$monodejs->emit('event', data); не вернет ответа, это отправка запроса в ноду и далее за обработку отвечает нода, она уже может из себя слать что и куда угодно, как минимум обратно в modx (modx.request('action', data, callback)).

Следовательно ты хочешь отправить запрос с modx в чужую ноду. И получить ответ внутри php, но php завершит процесс до ответа. Можно конечно извернуться и дать ответ, но что в это время будет делать «пользователь» сайта? Ждать ответа?

На примере карты, например, получает ответ браузер по get параметрам, но это браузер а не php.

Может быть я мало осведомлен в логике работы связки пыхи и ноды, но я не вижу смысла слать запросы на чужие сервера. Приведи пример где не только тебе будет полезно послать запрос из модкс куда-либо, и я начну над ним думать. Сейчас ты предлагаешь сделать так, как тебе удобно. Я не вижу в этом смысла для «всех». Добавить эти хотелки не проблема.

И да, каждый сокет (из ноды) проверяет сессию в модкс, если нет сессии — отключается не давая выполнять дальнейшие действия.

А вообще по таким вот обсуждения я уже предлагал тебе общаться в слаке да бы не захломлять тему.
1) значит у тебя по этому адресу нет ответа, следовательно не правильный хост\порт
2) моя связка на сокет.io, на ноде вылавливаются эвенты через сокетио а не «голая нода»
3) JSON.parse(data)

Я не могу предположить зачем слать запросы на кучу разных серверов, когда будет использоваться один.
По поводу 42 в начале — я долго ковырял, сокеты не принимали запросы без такой конструкции (где-то на гитхабе выловил)
Это leaflet + googleMutant(стили как у гугл мапа).
Во время тестов 2гис, гугл и яндекс погибали, все было оч долго. Яндекс еще как-то держался, но в его гроб последний гвоздь заколотил дизайнер с такой цветовой схемой. Вообще спасибо разработчикам supercluster (
www.mapbox.com/blog/supercluster/ ), очень и очень быстрая штука с поддержкой браузера\ноды из коробки. На гите вполне себе рабочий пример. Еще думаю добавлю проверку файла на изменение, чтоб точки обновлялись когда в бэкенде менеджеры копаются.