Ср май 27, 2020 23:05:14
абсолютно неприемлемый вариант - дико сложный.ПростоНуб писал(а):как на своем веб-сервере настроить push-уведомления
Чт май 28, 2020 00:08:05
Чт май 28, 2020 09:02:34
Чт май 28, 2020 09:27:52
а вы точно прочитали мои вопросы и условия из первых сообщений в теме?ПростоНуб писал(а):Вы точно прочитали статью по ссылке?
Чт май 28, 2020 09:47:36
Чт май 28, 2020 09:56:52
Чт май 28, 2020 10:24:50
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 писал(а):я в той статье на быдлохабре что-то не видел примеров кода на С для сервера!
#!/usr/bin/env php
<?php
$url = 'https://fcm.googleapis.com/fcm/send';
$YOUR_API_KEY = ''; // Server key
$YOUR_TOKEN_ID = ''; // Client token id
$request_body = [
'to' => $YOUR_TOKEN_ID,
'notification' => [
'title' => 'Ералаш',
'body' => sprintf('Начало в %s.', date('H:i')),
'icon' => 'https://eralash.ru.rsz.io/sites/all/themes/eralash_v5/logo.png?width=192&height=192',
'click_action' => 'http://eralash.ru/',
],
];
$fields = json_encode($request_body);
$request_headers = [
'Content-Type: application/json',
'Authorization: key=' . $YOUR_API_KEY,
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
POST /fcm/send HTTP/1.1
Host: fcm.googleapis.com
Authorization: key=YOUR-SERVER-KEY
Content-Type: application/json
{
"notification": {
"title": "Ералаш",
"body": "Начало в 21:00",
"icon": "https://eralash.ru.rsz.io/sites/all/themes/eralash_v5/logo.png?width=40&height=40",
"click_action": "http://eralash.ru/"
},
"to": "YOUR-TOKEN-ID"
}
Eddy_Em писал(а):И да, обычно все эти "пуш-уведомления" пользователь намертво отключает, т.к. они — зло!
Чт май 28, 2020 12:26:58
то, что сервер должен уметь эти самые сообщения отправлять. поскольку "сервер" тут лишь по поведению сервер, пишу его я сам, даже мечтать нельзя о чем-то типа php, python или еще чем-то подобном, на чем стандартно реализуется серверная часть для этих самых push-ей.ПростоНуб писал(а):Что еще?
Чт май 28, 2020 18:57:58
цитирую Вам весь код на странице для приема этих уведомлений
данную задачу можно решить простейшим скриптом на PHP
формировать простейший POST с JSON на C - это надо или с головой посориться
знать о необходимости обновления установленных приложений, балансе счета, погоде и т.п.
слать запросы из браузерного javascript-а на мой сервер каждые 100 мс
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unistd.h>
#include <ws.h>
void onopen(int fd)
{
char *cli;
cli = ws_getaddress(fd);
printf("Connection opened, client: %d | addr: %s\n", fd, cli);
free(cli);
}
void onclose(int fd)
{
char *cli;
cli = ws_getaddress(fd);
printf("Connection closed, client: %d | addr: %s\n", fd, cli);
free(cli);
}
void onmessage(int fd, const unsigned char *msg)
{
char *cli;
cli = ws_getaddress(fd);
printf("I receive a message: %s, from: %s/%d\n", msg, cli, fd);
ws_sendframe(fd, (char *)msg, true);
free(cli);
}
int main()
{
struct ws_events evs;
evs.onopen = &onopen;
evs.onclose = &onclose;
evs.onmessage = &onmessage;
ws_socket(&evs, 8080);
return 0;
}
ws_sendframe(fd, (char *)msg, true);
Чт май 28, 2020 19:31:42
я сомневаюсь, что вы можете дать мне адекватный совет после ранее выданных "комментариев". нормальное решение, будет работать.Eddy_Em писал(а):В корне неверное решение!
Чт май 28, 2020 20:02:05
Чт май 28, 2020 20:14:47
о чем я говорил - адекватности вам не хватает явно...Eddy_Em писал(а):советую все-таки вместо прошивки для игровых приставок поставить на компьютер операционную систему
Чт май 28, 2020 21:04:43
Чт май 28, 2020 21:21:41
Чт май 28, 2020 22:29:30
POST /fcm/send HTTP/1.1
Host: fcm.googleapis.com
Authorization: key=YOUR-SERVER-KEY
Content-Type: application/json
{
"notification": {
"title": "Ералаш",
"body": "Начало в 21:00",
"icon": "https://eralash.ru.rsz.io/sites/all/themes/eralash_v5/logo.png?width=40&height=40",
"click_action": "http://eralash.ru/"
},
"to": "YOUR-TOKEN-ID"
}
Eddy_Em писал(а):А можно еще сишный код, чтобы это уведомление послать?
Eddy_Em писал(а):хотел бы я посмотреть на скрипт на пыхпыхе, который будет по CAN-шине и USB работать с железками, что-то там в реальном времени вычислять и обеспечивать интерфейс взаимодействия с пользователями.
Чт май 28, 2020 23:01:02
Чт май 28, 2020 23:24:34
Eddy_Em писал(а):я все числодробилки исключительно на С пишу.
Пт май 29, 2020 08:28:16
именно так. вы стараетесь подогнать привычные для вас решения к моему случаю. собственно, как и Eddy_Em, то есть вы не пытаетесь решить мою задачу, а рассказываете, как решали свою. увы, кроме общей информации, толку от ваших советов мало - у меня другой случай.ПростоНуб писал(а):Или для Вас есть сложность запрограммировать посылку на 443-й TCP порт облачного Firebase приведенного в статье пакета?
Пт май 29, 2020 10:03:35
Жду примера подбора модели ARIMA для пары миллионов таймсерий на C )))
Пт май 29, 2020 10:51:21
Eddy_Em писал(а):Невозможно "общаться" с БД на SQL без самого SQL!
Eddy_Em писал(а):P.S. Погуглил, что такое ARIMA — нет, у меня точно таких данных нет.
Eddy_Em писал(а):И после перехода с фортрана на С где-то в конце 80-х годов, они все это пишут на С!!!
Eddy_Em писал(а):делать это нужно исключительно на вменяемых языках