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);
它现在完美。