Я настраиваю новый сервер уведомлений с помощью nodejs и socket.io.Сервер, на котором он работает, с почтальоном я могу отправить запрос POST и действительно отправляет уведомление, но с PHP требуется целую вечность, чтобы отправить POST с помощью curl, и он на самом деле не работает
Сервер nodejs работает на debian9, я получил сертификат SSL от Давайте зашифруем, поэтому он аутентифицирован, как я уже говорил с почтальоном (https://www.getpostman.com/), я могу сделать запрос POST и работает.Я отправляю заголовки с секретным ключом и телом с данными к уведомлению
#!/usr/bin/env node
var fs = require('fs');
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const port = process.env.PORT || 49152;
const notificationSecret = process.env.NOTIFICATION_SECRET;
var server;
if(process.env.SSL_KEY && process.env.SSL_CERT) {
var options = {
key: fs.readFileSync(process.env.SSL_KEY_PATH),
cert: fs.readFileSync(process.env.SSL_CERT_PATH)
};
server = require('https').createServer(options, app);
} else {
console.log("Error creating the server, missing KEY OR CERT");
}
const io = require('socket.io')(server);
server.listen(port, () => console.log('Server listening at port %d', port));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static(__dirname + '/public'));
app.post('/send', (req, res) => {
... больше, но не важно
и PHP
$data = array("notification" => "IF THIS WORKS", "channel" => "myChannel");
$payload = json_encode($data);
// Prepare new cURL resource
$ch = curl_init('IP/send');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
// Set HTTP Header for POST request
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'notification_secret: ')
);
// Submit the POST request
$result = curl_exec($ch);
// Close cURL session handle
curl_close($ch);
Всеместь идеи, что я могу попытаться это исправить?