我寫了一個小型的node.js netServer聊天應用程序。我想要爲它創建一個ncurses用戶界面。問題是,聊天應用程序是寫在服務器端,人們通過netcat連接,所以問題是我將如何去通過它在客戶端操縱ncurses?通過服務器端腳本使用node-ncurses客戶端?
6
A
回答
1
ncurses是一個C庫,你需要鏈接到它來調用它的功能,所以我不認爲它可以用於你的用例。
我猜,由「操縱ncurses的」你是真的後有什麼改變文本的您正在編寫的用戶,並上下移動屏幕上的顏色的方法等
你也許能夠通過讓用戶通過支持ANSI顏色轉義代碼的telnet客戶端進行連接來實現您想要的一些功能。解答產生顏色代碼的模擬問題here。
1
你需要的是一個作爲NodeJS模塊寫入的telnet(或ssh)服務器。
它需要了解telnet協議,它比簡單的字符流更豐富。 (例如,它發送終端(重新)大小和許多其他事件的消息)。 http://en.wikipedia.org/wiki/Telnet - 請參閱RFC。
這很令人困惑,因爲telnet客戶端通常用於連接到僅使用普通字符流的服務。
據我所知,沒有這樣的工作模塊。請糾正我,如果你找到一個。
Netcat不會發送有關終端類型,終端大小或終端事件的任何信息。這些對於一個ncurses類型的應用程序來說都是必需的。
0
您可以編寫一個net.server
包裝您的服務器端節點應用程序,讓用戶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
相關問題
- 1. 客戶端腳本和服務器端腳本語言
- 2. 如何禁用客戶端腳本塊服務器端(asp.net)
- 3. 通過Web服務通知服務器到客戶端
- 4. 我可以通過服務器實現客戶端 - 客戶端通信嗎?
- 5. 客戶端腳本中的服務器端變量
- 6. Opa:它如何識別服務器端或客戶端腳本
- 7. 服務器到客戶端通知/ Web服務(jax-ws)到客戶端通信
- 8. 我們如何從asp.net服務器端腳本調用客戶端腳本?
- 9. ServiceNow angularjs客戶端/服務器腳本通信
- 10. 客戶端到服務器端調用
- 11. 客戶端服務器通信受阻於客戶端
- 12. 使服務器端字符串在客戶端腳本中安全使用
- 13. 客戶端分頁通過服務器端數據(Ajax)
- 14. 通過WCF在服務器端檢索客戶端信息
- 15. 客戶端腳本與服務器腳本
- 16. 如何客戶端腳本或者服務器端腳本是否運行
- 17. 客戶端 - 服務器雙向通信
- 18. winsock客戶端和服務器通信
- 19. Silverlight客戶端 - 服務器通信
- 20. 客戶端/服務器,加密通信
- 21. 客戶端 - 服務器TCP通信
- 22. 客戶端 - 服務器通信
- 23. Android客戶端服務器通信
- 24. 服務器 - 客戶端通信
- 25. 服務器/客戶端通信問題
- 26. 客戶端服務器通信故障
- 27. Python客戶端服務器通信
- 28. 客戶端/服務器通信WPF
- 29. 服務器客戶端通信java
- 30. 客戶端/服務器通信圖
你看過node-ncurses嗎?不知道它是否會通過netcat工作。 https://github.com/mscdex/node-ncurses – 2011-03-16 22:06:46