2011-03-08 5 views
6

私は小さなnode.js netServerチャットアプリケーションを作成しました。私はそれのためのncursesユーザーインターフェイスを作成するために作業したいと思います。問題は、チャットアプリケーションはサーバーサイドで書かれており、人々はnetcat経由で接続するので、クライアント側でncursesを操作する方法はどうなるのでしょうか?node-ncursesクライアント側からサーバー側スクリプトを使用していますか?

+0

node-ncursesを見ましたか?それがnetcatを通じて動作するかどうかは不明です。 https://github.com/mscdex/node-ncurses –

答えて

1

ncursesは、関数と呼ぶためにリンクする必要のあるCライブラリであり、あなたのユースケースに使用できるものとは思えません。

私はあなたが多分

など、あなたが後に実際にあるか「のncursesを操作する」ことではあなたは、ユーザーへの書き込みまで移動すると、画面下にされているテキストの色を変更するための方法であると推測していますたとえば、ANSIカラーエスケープコードをサポートするTelnetクライアントを介してユーザーに接続させることで、必要なものをいくつか達成することができます。色コード hereを作成するためのsimliar質問に答えてください。

1

必要なものは、NodeJSモジュールとして書かれたtelnet(またはssh)サーバです。

シンプルな文字ストリームよりも豊富なテルネットプロトコルを理解する必要があります。 (例えば、端末(再)サイズおよび他の多くのイベントに関するメッセージを送信する)。 http://en.wikipedia.org/wiki/Telnet - RFCを参照してください。

これは混乱します。これは、通常の文字ストリームだけを使用するサービスに接続するためにテルネットクライアントがよく使用されるためです。

私が見つけた限り、このような作業モジュールはありません。見つけたら私を修正してください。

Netcatは、端末タイプ、端末サイズ、または端末イベントに関する情報を送信しません。これらはすべて、ncursesタイプのアプリケーションに必要です。

0

net.serverは、サーバー側のnode-ncurseアプリケーションをラップし、ユーザーがサーバーにtelnetして、アプリケーションの出力をパイプにパイプし、接続をアプリケーションにパイプすることができます。

#!/usr/bin/env node 


/** 
* widget.js is in node-ncurses's examples 
*/ 
var net = require('net'), 
    child = require('child_process'), 
    bin = child.spawn('./widget.js', ['InputBox']); 

var server = net.createServer(function(c) { 

    console.log('server connected'); 
    c.on('end', function() { 
     console.log('server disconnected'); 
    }); 

    c.pipe(bin.stdin); 
    bin.stdout.pipe(c); 

}).listen(8124, function() { 
    console.log('server bound 8124'); 
}); 

// and let users: 
// $ telnet localhost 8124 
関連する問題