gpt4 book ai didi

PHP socket_connect 如果使用 SSL?

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:47 26 4
gpt4 key购买 nike

我想将数据从我的 PHP 服务器 发送到我在 NodeJS 上运行的 Socket.IO 服务器

在本地主机上一切正常 (使用 http://)

但是现在,服务器正在安全连接的网络上运行

https://example.com ... 它不再起作用了。


Apache 服务器 正在运行并在端口 443

上受到保护

NodeJS/SocketIO 服务器 位于端口 1337


PHP

function sendData() {
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, '127.0.0.1', 1337);
if(!$result) {
return;
}

$data = Array();
$data["test"] = "Hello";

$bytes = socket_write($socket, json_encode(Array("do" => "sendSomeData", "data" => $data)));
socket_close($socket);
}

Node

var server = https.createServer({
key: fs.readFileSync('/home/certificates/certkey.key'),
cert: fs.readFileSync('/home/certificates/cert.crt'),
ca: fs.readFileSync('/home/certificates/chained.crt'),
}, app);

server.listen(1337, function() {
console.log('listening on *:1337');
});

server.on("connection", function(s) {

if (s.remoteAddress == "::ffff:127.0.0.1") {
// UNTIL THIS, EVERYTHING WORKS

s.on('data', function(buf) {
// BUT THIS WON'T GET CALLED
// USING HTTPS

var js = JSON.parse(buf);
console.log("Received data")

if (js.do == "sendSomeData") {
console.log("Yeah, 'Hello' arrived!")
}
}
}
}

最佳答案

由于找到解决方案而回答我自己的问题:

因此,如果服务器在 https 上运行,它不会收到任何数据。

因此我在另一个端口上打开了 另一个服务器 http


var httpServer = require('http').Server(app); // on http create server
httpServer.listen(1338);

现在可以完美运行了。

关于PHP socket_connect 如果使用 SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54543355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com