Node.js客户端和服务器使用Telnet进行游戏
Node.js client and server game using Telnet
我正在尝试使用Node.js创建一个基本游戏(只有文本),它是"net"库
我碰到了一堵墙。我似乎不知道如何提示用户输入一些信息,并等待用户输入所述信息
这是我目前掌握的代码。它相当基本,在运行客户端时会为您打印出2行,然后挂起。在这一点上,我希望用户能够输入信息。我不确定以下几点:
1.如何让用户键入?(更具体地说,是客户端还是服务器端)
2.按下回车键时,如何将数据发送到服务器
我已经阅读了一些关于Telnet的文档,这让我想到了最后一个问题:Node中的Telnet模块真的适合吗?或者有更好的客户端/服务器创建和通信替代方案吗?
客户代码:
var connect = require('net');
var client = connect.connect('80', 'localhost');
console.log('Connection Success!'n'n');
client.on('data', function(data) {
// Log the response from the HTTP server.
console.log('' + data);
}).on('connect', function() {
// Manually write an HTTP request.
//I'm assuming I could send data at this point here, on connect?
}).on('end', function() {
console.log('Disconnected');
});
服务器代码:
var net = require('net');
var sockets = [];
function cleanInput(data) {
return data.toString().replace(/('r'n|'n|'r)/gm,"");
}
function receiveData(socket, data) {
var cleanData = cleanInput(data);
if(cleanData === "quit") {
socket.end('Goodbye!'n');
}
else {
for(var i = 0; i<sockets.length; i++) {
if (sockets[i] !== socket) {
sockets[i].write(data);
}
}
}
}
function closeSocket(socket) {
var i = sockets.indexOf(socket);
if (i != -1) {
sockets.splice(i, 1);
}
}
function newSocket(socket) {
sockets.push(socket);
socket.write('Welcome to the Battleship Server!'n'n');
socket.write('Please enter a username: ');
socket.on('data', function(data) {
receiveData(socket, data);
})
socket.on('end', function() {
closeSocket(socket);
})
}
var server = net.createServer(newSocket);
server.listen(80);
提前感谢!
- 您希望使用
process.stdin
和process.stdout
与来自/到终端的输入/输出进行交互。看看这里 - 当用
process.stdin.once('data', function(data){ /* ... */ })
按下回车键时,您可以向服务器发送数据。.once
方法确保在用户点击回车键时只调用一次回调
客户端代码应该看起来像:
var connect = require('net');
var client = connect.connect('80', 'localhost');
client.on('data', function(data) {
console.log('' + data);
process.stdin.once('data', function (chunk) {
client.write(chunk.toString());
});
}).on('connect', function() {
client.write('Hello');
}).on('end', function() {
console.log('Disconnected');
});
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 如何有效地将游戏数据存储在URL查询字符串中
- Javascript游戏输入失去焦点
- 如何在p5.js中管理多智力竞赛游戏的多个屏幕
- setInterval游戏循环的范围问题
- 为网络游戏制作动画
- 重置游戏和获胜者问题
- 帆布游戏的滞后运动
- Javascript单独的游戏窗口
- Javascript猜测游戏-计数器不工作
- JavaScript纸牌游戏
- 简单游戏的画布与SVG
- 我的HTML5游戏不时暂停,我如何才能知道它是否's是由垃圾收集引起的
- 多人游戏完全在浏览器中运行,服务器仅用于数据库
- 通过PHP将单词添加到游戏中
- 2D Processingjs游戏中的冲突
- Javascript岩石,纸,剪刀游戏
- 设置变量时破坏游戏代码
- JavaScript中的生活游戏-使用表
- Node.js客户端和服务器使用Telnet进行游戏