Küçük parçalar halinde soket mesajları bölme dan node.js tutmak için nasıl

0 Cevap php

Ben bir TCP soketi üzerinden, Apache / PHP node.js json veri iter bir sohbet programı var:

// Node.js (Javascript)
phpListener = net.createServer(function(stream)
{
    stream.setEncoding("utf8");
    stream.on("data", function(txt)
    {
        var json = JSON.parse(txt);

        // do stuff with json
    }
}
phpListener.listen("8887", 'localhost');

// Apache (PHP)
$sock = stream_socket_client("tcp://localhost:8887");
$written = fwrite($sock, $json_string);
fclose($sock);

Sorun JSON dize (8k civarında) üzerinden yeterince büyükse, çıkış mesajı birden çok parçalara bölünür alır, ve JSON ayrıştırıcı başarısız olur. PHP dize doğru uzunluğu $ yazılı değerini verir, ancak veri olay işleyicisi iki kez veya daha fazla patlar.

Ben farklı bir olay fonksiyonu eklemek olabilir, veya ağır yük altında yarış koşullarına boyun eğmeyeceğini bir şekilde, olay yangınlar arasında metni önbelleğe bir yolu var mıdır? Veya başka bir çözüm ben düşünce değil mi?

Teşekkürler!

0 Cevap