我想将数据从 PHP服务器发送到运行在NodeJS上的 Socket.IO服务器。
在localhost 上一切正常(使用http://)
但是现在,服务器正在通过安全连接在网络上运行
https://example.com
...不再起作用。
Apache服务器正在运行,并且已在端口 443
NodeJS / SocketIO服务器位于端口 1337
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);
}
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!")
}
}
}
}
答案 0 :(得分:0)
由于找到解决方案而回答了我自己的问题:
因此,如果服务器在https上运行,则不会接收任何数据。
因此,我打开了另一端口上的另一台服务器。
http
它现在可以完美运行。