【问题标题】:PHP socket_connect if using SSL?PHP socket_connect 如果使用 SSL?
【发布时间】:2019-06-29 19:11:58
【问题描述】:

我想将数据从我的 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);
}

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!")
            }
        }
    }
}

【问题讨论】:

  • 请定义“它不再起作用”。会发生什么?你得到什么错误?
  • @ceejayoz PHP 和 NodeJS 之间建立了连接,但 s.on('data', function(buf) { 部分没有执行,因为它没有获取数据。所以什么也没发生,服务器继续运行。
  • 我怀疑问题与 SSL 有关,这可能是 localhost 和服务器之间的配置差异。也许有防火墙阻止了流量。
  • PHP 与 SSL 的运行没有任何不同。它是否适用于与服务器的 HTTP 连接而不是 HTTPS?

标签: php node.js sockets ssl


【解决方案1】:

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

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

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


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

现在完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 2012-07-07
    • 2013-05-17
    • 2011-03-01
    • 1970-01-01
    • 2012-02-26
    • 2013-01-14
    相关资源
    最近更新 更多