2016-04-02 7 views
0

CasparCGサーバーと通信できるWebアプリケーションを作成する必要があります。サーバーは、基本IP &ポートのTCP接続を受け入れます。次に、接続を介して文字列を送信します。TCP-PHPまたはNode.jsと通信するアプリケーション

私はPHPがこれを主なコミュニケーションツールとして使用するというジレンマに遭遇しました。なぜなら、PHPがfreadで応答を読み取るたびに、それがサーバーから切断されるからです。スクリプトが終了するので、接続は終了します。

私は、この部分のPHPまたはTCP接続にはほとんど言語を使用していません。接続が切断されたり接続が中止されたときに切断されたりしているように見えるC#TCP接続に関しては、すべての要求が遅延するという全体的なパフォーマンスに切断が影響するかどうかはわかりません。これが私がnode.jsについて読んだ理由です。

ここで、このようなアプリケーションの代わりに、Node.jsをPHPとして使用する方がよいでしょうか?私はすでにAngularJS + PHPで始める良い基盤を持っていますが、PHPが問題です。私はnode.jsの経験はありませんが、私はそれに喜んで行きます。

答えて

1

はい、Node.jsを使用することをおすすめします。 Netモジュールをピックアップすることができます。

var s = require("net"); 
var cn = s.createConnection({port: YourPortHere, host: YourHostHere}, callback); // createConnection and connect should be the same (cn is instance of net.Socket) 

function callback(){ 
    // Called when the connection is ready and so cn can be used 
} 

cn.on("data", function(data){ 
    // Handle messages received by server (data is instance of Buffer) 
    if(data.toString("ascii") == "ping"){ 
     s.write("pong!"); 
    } 
}); 

cn.on("end", function(){ 
    // Disconnected 
}); 

ご覧のとおり、使用するのは簡単です。 注:特殊文字を送信したり、解析する必要がある場合は、エンコーディングを変更することができ、例えば、コールバック受信の10行目に:

if(data.toString("utf8") == "èùà") // BTW, the parameter is usually set by default to utf8, so there is no need to provide that, in theory. 

特殊文字に

cn.setEncoding("utf8"); 
+0

感謝を送信!私はこれでこれをチェックし始めるでしょう。 – Rcls

関連する問題