Eddy_Em, смысл сваливаться на уровень веб-сокетов, если есть стандартизованный Push API?
Ни разу в жизни про это не слыхал! Если имеются в виду PUSH-запросы, то никакие они не "стандартизированные". Да и вообще их никто не использует, пользуются POST или GET. И запросы не дают возможности сделать полноценно асинхронную систему. Асинхронность - только с вебсокетами! Жаль только, что для "секурных" вебсокетов ничего нормального нет: libwebsockets — полная жесть (жирный и неповоротливый, да и кода надо такие дикие простыни писать, то спасибо - не надо). Нашел хорошую замену, но там, к сожалению, нет WSS.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Eddy_Em, а по ссылке пройти и почитать сил не хватило, если Вы "ни разу в жизни про это не слышали"? )))
Добавлено after 1 hour 14 minutes 59 seconds: ARV, Вы точно прочитали статью по ссылке? По мне так, куда уж проще: 1. Зарегистрироваться на firebase 2. Сделать облачный проект при помощи copy-paste из статьи. 3. Отправлять с веб-сервера уведомления на firebase обычным POST вообще без HTML, используя простейший JSON
Если на Вашем веб-сервере еще нет HTTPS, то еще два шага 1. Установить на веб-сервере ACME клиент 2. Настроить его для автоматической сертификации на letsencrypt.org
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
ARV, Естественно. Вы хотите, чтобы смартфон без всякого дополнительного ПО мог получать уведомления от Вашего же веб-сервера. Код JS обработчика push уведомлений на веб-странице по ссылке есть. Все мобильные браузеры push-уведомления поддерживают. Что еще?
Как ни крути, но по инициативе сервера обратиться к браузеру на смартфоне не возможно. По той простой причине, что в 99% случаев он находится за NAT провайдера (исключение - IPv6 предоставляемое одним и тем же провайдером и для телефона, и для веб-сервера). Поэтому, прежде чем получать какие-либо уведомления, какое-либо приложение на смартфоне должно установить соединение с каким-либо сервисом по TCP (WebSocket). Но никоуровневая работа с WebSocket заметно сложнее, чем использование готового Push API, использующего тот же WebSocket.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Eddy_Em, а по ссылке пройти и почитать сил не хватило, если Вы "ни разу в жизни про это не слышали"? )))
Прошел. Там треш какой-то вообще не нужный. Я понял, о чем речь — об этих назойливых всплывающих сообщениях. Нет, оно не годится для "общения" со своим железом. Уж тем паче — асинхронного общения. Я нашел в интернетах отличную библиотеку для вебсокетов: примеры вообще поражают своей минимальностью. Проблема лишь в отсутствии WSS, но ARV это не нужно. Думаю, как раз она бы ему и пригодилась: NGINX'ом выдавать статику, а вебсокетами общаться.
Но никоуровневая работа с WebSocket заметно сложнее, чем использование готового Push API, использующего тот же WebSocket.
Спасибо, поржал! Посмотрите примеры по ссылочке, что я дал. А потом сравните с той тонной жабоскрипта, который нужен для этих "пуш-уведомлений". Я уж не говорю о том, что server-side ARV придется самому писать: я в той статье на быдлохабре что-то не видел примеров кода на С для сервера!
И да, обычно все эти "пуш-уведомления" пользователь намертво отключает, т.к. они — зло!
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
не годится для "общения" со своим железом. Уж тем паче — асинхронного общения.
Оно именно для асинхронного общения предназначено отродясь ) И раз Вы не умеете читать статьи, цитирую Вам весь код на странице для приема этих уведомлений: Спойлер
Код:
if ('Notification' in window) { var messaging = firebase.messaging();
messaging.onMessage(function(payload) { console.log('Message received. ', payload); new Notification(payload.notification.title, payload.notification); });
// ... } // ...
Eddy_Em писал(а):
я в той статье на быдлохабре что-то не видел примеров кода на С для сервера!
Это потому, что из-за своей ограниченности Вы даже не представляете, что данную задачу можно решить простейшим скриптом на PHP, запускаемым прямо в консоли, и который тоже есть в статье ))) Спойлер
Код:
#!/usr/bin/env php <?php
$url = 'https://fcm.googleapis.com/fcm/send'; $YOUR_API_KEY = ''; // Server key $YOUR_TOKEN_ID = ''; // Client token id
И да, обычно все эти "пуш-уведомления" пользователь намертво отключает, т.к. они — зло!
Вообще все никто не отключает, так как через них приходит, в том числе, важная информация. Например, у 99.9% пользователей Android разрешены Push уведомления. Чтобы, хотя бы, знать о необходимости обновления установленных приложений, балансе счета, погоде и т.п. А от каких серверов принимать push уведомления решает только пользователь. Не будете же Вы запрещать уведомления от собственного веб-сервера? )))
то, что сервер должен уметь эти самые сообщения отправлять. поскольку "сервер" тут лишь по поведению сервер, пишу его я сам, даже мечтать нельзя о чем-то типа php, python или еще чем-то подобном, на чем стандартно реализуется серверная часть для этих самых push-ей.
именно поэтому я принял решение просто слать запросы из браузерного javascript-а на мой сервер каждые 100 мс (для примеру). и это решает 100% моих проблем без намека на весь тот сахар, что вы предлагаете.
и не забывайте - речь не о веб-сервере, а о сервере в локальной сети, образованной точкой доступа смартфона, и в сети этой будет, помимо смартфона, только МК с моим сервером.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
цитирую Вам весь код на странице для приема этих уведомлений
А можно еще сишный код, чтобы это уведомление послать?
Цитата:
данную задачу можно решить простейшим скриптом на PHP
Я что, быдло какое, чтобы на пыхпыхе что-то делать? А если серьезно, хотел бы я посмотреть на скрипт на пыхпыхе, который будет по CAN-шине и USB работать с железками, что-то там в реальном времени вычислять и обеспечивать интерфейс взаимодействия с пользователями. Ну, а вообще, пыхпых сдох уже лет 10 назад вместе с флешем! Гнилые, никому не нужные технологии!
Цитата:
формировать простейший POST с JSON на C - это надо или с головой посориться
Что за наезд? Зачем изучать всякое говно вроде пхытонов, если все это элементарным образом на С делается? Поражаюсь с этих хипстеров! Давайте еще на дотнете запилим, а вместо операционной системы — "десяточку"!
Цитата:
знать о необходимости обновления установленных приложений, балансе счета, погоде и т.п.
О необходимости обновления "напоминает" пакетный менеджер, больше некому об этом заботиться. О балансе напоминает СМСка. О погоде — приложение или плагин, которое периодически POST-запросом вытаскивает данные с сайта. Места для "пуш-уведомлений" нет вообще нигде!!!
Цитата:
слать запросы из браузерного javascript-а на мой сервер каждые 100 мс
В корне неверное решение! Если нужно данные так часто передавать, то кроме вебсокетов вариантов немного: либо fastCGI на NGINX, либо свой демон, который слушает определенный порт (скажем, 12345). Если вы не в курсе, то обычный CGI запускается на каждый запрос! Т.е. ОСь будет считывать его с диска (правда, при частых запросах он будет уже кэширован в память, если, конечно, вы не пользуетесь прошивкой для игровых приставок вместо операционной системы), копировать в память, запускать стартап и потом запускать его!
Очень советую подумать о вебсокетах. И работать с ними несложно. Вот — полный код эхо веб-сокета:
отправляет данные всем подключенным клиентам, а если третий аргумент false — только клиенту с заданным файловым дескриптором. Очень удобно для организации веб-морд: авторизованный клиент может делать что угодно, а остальные — только смотреть данные...
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
ARV, для начала советую все-таки вместо прошивки для игровых приставок поставить на компьютер операционную систему. Разработка всяких сервисных утилит значительно упростится!
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
ARV, кому не хватает - мне? В своем глазу бревно сначала разглядите!!!
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
какие там бревна?! вы разве не обращаете внимание, что все ваши советы всегда начинаются, заканчиваются и вообще исчерпываются призывом сменить ОС с винды на линух? если по теме винды вам сказать нечего (а я ведь конкретно очертил круг проблемы), для чего вообще вы тут выступаете?
когда я спрашивал в теме про линух, никто мне ничего толкового посоветовать не мог, кроме чтения манов... в вашем линухе так заведено: сначала обосрать ОС, которой пользуются 90% всех пользователей на планете, заманить неориентирующегося пользователя в свои сети, а потом при возникновении вопросов глумиться? спасибо, такая помощь мне не нужна - проходите мимо!
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
К тому же, обычно, IoT МК все равно сидит за веб-сервером. Хотя бы потому, что IPv6 большинство МК не тянут (или тянут подмножество из RFC 6434, с неприемлемым уровнем безопасности), а платить ежемесячно за статический IPv4 адрес для каждого своего МК - накладно.
Eddy_Em писал(а):
А можно еще сишный код, чтобы это уведомление послать?
Я что быдло, писать код на C для того, кто не только не умеет это делать, но еще выпендривается? )))
Eddy_Em писал(а):
хотел бы я посмотреть на скрипт на пыхпыхе, который будет по CAN-шине и USB работать с железками, что-то там в реальном времени вычислять и обеспечивать интерфейс взаимодействия с пользователями.
Вы опять из-за собственной ограниченности не понимаете, что универсального языка или средства разработки на все случаи жизни просто не существует! Я так же хотел бы посмотреть, как Вы будете портал для rich web application писать на C. Пока напишете, или состаритесь, или он уже никому нужен не будет ))) А если Вы еще начнете с БД не на SQL/MDX/DAX, а на голом C общаться, как в середине прошлого века, то можно будет вообще уписаться ))) Так же хотел бы я посмотреть, как Вы вместо MathLAB или R займетесь предиктивным анализом на C. ))) Вы нелинейный сезонный ПИД на C моделируете? Подбираете модель ARIMA c фильтром Калмана на голом C?
ПростоНуб, я все числодробилки исключительно на С пишу. В Octave делаю анализ и проверяю алгоритмы. Если все работает - вперед! Не пхытоном же уродским пользоваться! И да, с БД на sqlite я тоже "общаюсь" исключительно из сишного кода! Не баш-скриптом же это делать!!!
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
И да, с БД на sqlite я тоже "общаюсь" исключительно из сишного кода!
Вы лжете. Работать с SQLite без использования языка SQL исключительно на C через sqlite3_file_control() бессмысленно и мало реально. А из компилируемых языков вызов интерпретатора - обычное дело. Но это и есть программирование уже на интерпретаторе (пусть даже том же SQL), а не на компилируемом языке. Хотя, похоже, Вам что-то объяснять бессмысленно. Вы искренне считаете, что все задачи можно решить одним инструментом и готовы забивать гвозди микроскопом ))) "Послушайте! Ведь, если звезды зажигают - значит - это кому-нибудь нужно!" (с) Маяковский В.В.
Добавлено after 5 minutes 59 seconds:
Eddy_Em писал(а):
я все числодробилки исключительно на С пишу.
Жду примера подбора модели ARIMA для пары миллионов таймсерий на C ))) Для сравнния, на R + plpgsql это пишется за пять минут. За 15 минут - в многопоточном виде.
Или для Вас есть сложность запрограммировать посылку на 443-й TCP порт облачного Firebase приведенного в статье пакета?
именно так. вы стараетесь подогнать привычные для вас решения к моему случаю. собственно, как и Eddy_Em, то есть вы не пытаетесь решить мою задачу, а рассказываете, как решали свою. увы, кроме общей информации, толку от ваших советов мало - у меня другой случай.
у меня нет интернета, нет облака, есть локалка с двумя узлами - ПК и смартфон. больше ничего нет, ни шлюза в сеть, ни NAT, ни чего-то еще. все, что мне нужно, я должен делать сам: нужна база - должен её создавать сам, нужно "облако" - должен его реализовать... умею я это делать только на паскале, причем за счет богатой базы готовых компонентов. для простого http-сервера, способного держать 2-3 соединения без проблем, есть готовый компонент, которым я и пользуюсь для решения своих задач. никакого puch-а там нет, и как его делать не понятно. и, главное, не понятно, зачем его делать для моего случая? полностью достаточно того, о чем я уже писал: джаваскриптом периодически делать GET на сервер, оттуда получать содержимое элементов странички и динамически их обновлять. полностью безоблачно.
признаюсь: чтобы дойти до этого решения, мне потребовалась помощь зала, в основном, в направлении, куда смотреть. теперь же советы пошли явно из области фантастики...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Вы лжете. Работать с SQLite без использования языка SQL исключительно на C через sqlite3_file_control() бессмысленно и мало реально.
Ну вот, нуб меня и во лжи обвинил! Естественно, С использует вызовы языка SQL! Невозможно "общаться" с БД на SQL без самого SQL! Но делается это напрямую из С. Вот! Я как раз собираюсь на днях делать рефакторинг этой своей библиотечки. Буду ее использовать для аутентификации по https, а wsServer — для общения с железом.
Цитата:
Жду примера подбора модели ARIMA для пары миллионов таймсерий на C )))
Я без понятия, что это. Мои задачи: анализ изображений, расчет некоторых моделей. Для всего этого С хватает с головой: pthreads, openMP. Ну, разве что для CUDA приходится в псевдо-С++ стиле писать.
P.S. Погуглил, что такое ARIMA — нет, у меня точно таких данных нет. Вот РАТАНовцам, скорее всего, что-то подобное приходится решать. И после перехода с фортрана на С где-то в конце 80-х годов, они все это пишут на С!!! Сейчас только молодые хипстеры, которые еще не набили достаточно шишек и считают себя самыми умными, пытаются писать на всяких недоЯПах вроде пхытона. Но потом к ним таки приходит озарение, что если им нужно сделать дико сложную числодробилку, и ждать 100 лет не хочется, то делать это нужно исключительно на вменяемых языках: фортране, С или С++.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
у меня нет интернета, нет облака, есть локалка с двумя узлами - ПК и смартфон.
Ну так с этого и надо было начинать ) Спокойно пинайте сервер хоть по десять раз в секунду. Локалка этой нагрузки не заметит, а сервер, обслуживающий толко одного клиента тоже без проблем обработает такую частоту запроса.
Eddy_Em писал(а):
Невозможно "общаться" с БД на SQL без самого SQL!
С SQLite возможно, я даже указал как ) Вы же вроде бы утверждали, что все пишете на C? А тут вдруг интерпретируемый SQL оказывается используете
Eddy_Em писал(а):
P.S. Погуглил, что такое ARIMA — нет, у меня точно таких данных нет.
Значит никаких серьезных вычислительных задач Вы вообще не решаете, хотя выступаете тут ))) А ведь ARIMA - это простейшая предиктивная модель! Сейчас даже контроллеры лифтов в крупных офисных зданиях ее используют. Впрочем, как и любые контроллеры, где востребовано предсказание показаний датчиков.
Eddy_Em писал(а):
И после перехода с фортрана на С где-то в конце 80-х годов, они все это пишут на С!!!
Никто в здравом уме не переписывает работающий код с фортрана. Подавляющее большинство математических библиотек так до сих пор и остались на фортране, что, впрочем, никак не мешает пользоваться ими из любого другого языка программирования.
Eddy_Em писал(а):
делать это нужно исключительно на вменяемых языках
Собственно говоря именно тем и отличается профессиональный программист от "хипстера", вроде Вас, что ему совершенно безразлично на каких языках написан проект, который нужно развивать и поддерживать. Лично мне глубоко монопенисуально, на каком языке мне дали пример кода. Хоть на бэйсике, PL/I, PHP, Lisp, SAS или Cobol. Алгоритм и так виден, а если язык примера не устраивает, по каким-то причинам, портирую код на нужный в данном случае язык. Вас же сразу коробит от кода на PHP, как студента первого курса Если бы я Вам привел пример кода на Cobol или Lisp Вас бы, походу, вообще кондрашка хватила )))
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения