最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

PHP socket

IT培训 admin 10浏览 0评论

PHP socket

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

一切工作在localhost罚款(使用http://)

但现在,该服务器使用安全连接在网络上运行

...它不工作了。


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!")
            }
        }
    }
}
回答如下:

回答我的问题,由于寻找解决方案:

因此,如果服务器上运行HTTPS,但这并没有收到任何数据。

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


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

它现在完美。

PHP socket

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

一切工作在localhost罚款(使用http://)

但现在,该服务器使用安全连接在网络上运行

...它不工作了。


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!")
            }
        }
    }
}
回答如下:

回答我的问题,由于寻找解决方案:

因此,如果服务器上运行HTTPS,但这并没有收到任何数据。

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


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

它现在完美。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论