Я хотел бы отправить данные с моего PHP-сервера на мой сервер Socket.IO, работающий на NodeJS .
Все отлично работало на localhost (используя 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);
}
NodeJS
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!")
}
}
}
}