首页 > 解决方案 > PHP curl需要很长时间才能执行,最后它在de nodejs服务器上没有做任何事情

问题描述

我正在使用 nodejs 和 socket.io 设置一个新的通知服务器。它正在工作的服务器,我可以使用邮递员发送 POST 请求并确实发送通知,但是使用 PHP 需要很长时间才能使用 curl 发送 POST 并且它并没有真正工作

nodejs 服务器在 debian 9 上运行,我从 let's encrypt 获得了 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);

任何人都知道我可以尝试解决什么?

标签: phpnode.jscurl

解决方案


推荐阅读