nepster-web
@nepster-web

Как организовать общение php и node.js по сокету?

php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
        
            $msg = "Пинг !";
            $len = strlen($msg);
        
            socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 8080);
            socket_close($sock);


пытаюсь пульнуть строку на 127.0.0.1:8080 и прочитать нодой:

var io = require('socket.io').listen(8080);
    io.set('log level', 1);
    io.set('heartbeats', true);
    io.set('heartbeat timeout', 30);
    io.set('heartbeat interval defaults',5);
    io.set('heartbeat interval defaults',5);




io.sockets.on('connection', function (socket) 
{
    
    socket.on('message', function (msg) 
    {
        
        console.log(msg);

    });
    
});


Однако все тихо, подскажите пожалуйста как правильно обменяться данными ?
  • Вопрос задан
  • 3346 просмотров
Пригласить эксперта
Ответы на вопрос 3
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Я не спец по ноде, но скорее всего у вас слушается TCP порт, а отправляется на UDP порт.
Ответ написан
@buzzi888
Нужно на ноде открывать UDP сокет, вместо socket.io

UDP nodejs

var dgram = require("dgram");

var server = dgram.createSocket("udp4");

server.on("error", function (err) {
  console.log("server error:\n" + err.stack);
  server.close();
});

server.on("message", function (msg, rinfo) {
  console.log("server got: " + msg + " from " +
    rinfo.address + ":" + rinfo.port);
});

server.on("listening", function () {
  var address = server.address();
  console.log("server listening " +
      address.address + ":" + address.port);
});

server.bind(8080);
// server listening 0.0.0.0:8080
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
А какие были основания в php использовать udp? логичнее же использовать tcp.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
22 сент. 2021, в 09:10
1500 руб./за проект
22 сент. 2021, в 08:12
5000 руб./за проект
22 сент. 2021, в 04:50
1000 руб./за проект