PHP socket_connect, если используется SSL? - PullRequest
0 голосов
/ 06 февраля 2019

Я хотел бы отправить данные с моего 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!")
            }
        }
    }
}

1 Ответ

0 голосов
/ 07 февраля 2019

Отвечая на мой вопрос в связи с поиском решения:

Поэтому, если сервер работает по протоколу https, он не получает никаких данных.

Поэтому я открыл другой сервер, то есть http на другом порту.


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

Теперь работает отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...