//如何在机房开心的聊天。(建立node聊天室)

试想一下,上机课,你和你心爱的姑娘坐了好远好远,三个小时的寂寞,谁能懂,在机房,或信号差,或老师管的严,不让玩手机。
又试想一下,上机课,你想在你心爱的姑娘面前表现出一副大牛的样子,这样,之后课设,作业,她便会不自居的向你靠来,成为人赢,就在现在。
这篇文章教大家做一个局域网的简易聊天室,一百行代码,实现你的装哔~梦。
前期准备,部署 node 环境。
为什么要用NODE?它足够小,比JAVA /C++ 部署方便得多,JS够简单,记事本就能写出你华丽的代码。废话不多说,开始。
用到API,node.net.
//首先建立服务端

constnet = require('net');
// 用于存储所有的连接
var clients = [];
var port =2080; //定义服务器端口
server.listen(port, (err) => {
if(err) {
console.log('端口被占用');
return false;
}
console.log(`服务端正常启动监听【${port}】端口`);
})
varserver = net.createServer((socket) => {
clients.push(socket);
console.log(`Welcome${socket.remoteAddress}to ${port} chatroom`);
functionboardcast(signal) {
console.log(signal);
// 肯定有用户名和消息
var username = signal.from;
var message = signal.message;
// 我们要发给客户端的东西
var send = {
procotol: signal.procotol,
from: username,
message: message
};
// 广播消息
clients.forEach(client=> {
client.write(JSON.stringify(send));
});
}
// 有任何客户端发消息都会触发
socket.on('data', (chunk) => {
try{
var signal = JSON.parse(chunk.toString().trim());
var procotol = signal.procotol;
switch(procotol) {
case'boardcast':
boardcast(signal);
break;
default:
socket.write('啥,你想吃日新楼?');
break;
}
}catch(error) {
socket.write('弄啥咧!');
}
});
});

具体思路,设置服务器监听端口,客户端接入时,列入数组,有消息进来,选择消息传播方式。这里设置boardcast 广播模式,消息循环发送到所有客户端,完成简易聊天功能。
下面开始完成客户端

// 创建于服务端的连接
varserver = net.connect({ port:2080, host:'/*你机器的端口*/'}, () => {
console.log(`Welcome${name}to 2080 chatroom`);
// 监听服务端发过来的数据
server.on('data', (chunk) => {
try{
var signal = JSON.parse(chunk.toString().trim());
var procotol = signal.procotol;
switch(procotol) {
case'boardcast':
//广播模式接受数据。
console.log('\nboardcast');
console.log(signal.from +'>');
console.log(signal.message);
//收到聊天内容打印出来
rl.prompt();
break;
default:
server.write('中午吃啥');
break;
}
}catch(error) {
server.write('弄啥咧!');
}
});
rl.setPrompt(name +'> ');
rl.prompt();
rl.on('line', (line) => {
var send = {
procotol:'boardcast',
from: name,
message: line.toString().trim()
};
server.write(JSON.stringify(send));
rl.prompt();
}).on('close', () => {
});
});
});

思路,访问监听的端口号,输入用户名和消息,发送至服务端,服务端接受后,循环广播至每个客户端,实现聊天功能。

学弟学妹们,你们下学期的课设,有一项加分项就是实现聊天功能,代码放到这里咯。不懂随时来问。
图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 试想一下,上机课,你和你心爱的姑娘坐了好远好远,三个小时的寂寞,谁能懂,在机房,或信号差,或老师管的严,不让玩手机...
    郝梓淳阅读 395评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 1.OkHttp源码解析(一):OKHttp初阶2 OkHttp源码解析(二):OkHttp连接的"前戏"——HT...
    隔壁老李头阅读 21,075评论 24 176
  • 我开好友圈里我的朋友都在玩游戏,我不知道游戏为什么令人着迷! 原来我也爱上了游戏,《倩女幽魂》这部手游,从阳间到阴...
    cca8645a5515阅读 555评论 3 0
  • 恨无端,风起青萍之末。身似铁,舟行多雨之秋。 尘沙涤荡,江海奔流。乾坤浑噩噩,转眼青山变土丘。倾天紫电连云起,覆水...
    君怀璧阅读 351评论 3 10