利用Net module 做的简单聊天工具,可以使用telnet 连接这个程序
var net = require('net');
var config = {
separate : '\r\n'
};
var connections = new Object();
var server = net.createServer(function (c) {
var ip = c.remoteAddress;
var port = c.remotePort;
connections[ip+port] = c;
c.write('Welcome to chat room! your ip is ' + ip+port);
c.write(config.separate + 'I say:');
var buffers = [];
c.setEncoding('utf-8');
c.on('data', function (data) {
var index = data.indexOf(config.separate);
if (index < 0) {
buffers.push(data);
} else {
var contents = data.split(config.separate);
// contents[0] + buffers will send
var buffer = '';
for (var i = 0, l = buffers.length; i < l; i++) {
buffer += buffers[i];
}
var message = contents[0] + buffer;
buffers = [];
sendAll(c, message);
// contents[n] will send
if (contents.length > 2) {
for (var i = 1, l = contents.length; i < l - 1; i++) {
sendAll(c, contents[i]);
}
}
// contents[last] will be push into buffers
buffers.push(new Buffer(contents[contents.length - 1]));
}
});
c.on('close',function(){
delete connections[ip+port];
});
});
function sendAll(conn, message) {
for (var address in connections) {
if(connections.hasOwnProperty(address)){
console.log(address);
if (conn != connections[address]) {
console.log('other');
var what2say = config.separate + conn.remoteAddress + ':' + conn.remotePort +
'@[' + now() + '] said:' + message +
config.separate + 'I say: ';
connections[address].write(what2say);
} else {
console.log('self');
connections[address].write(config.separate + 'I say: ');
}
}
}
}
function now() {
var date = new Date();
hour = date.getHours();
min = date.getMinutes();
sec = date.getSeconds();
return hour + ':' + min + ':' + sec;
}
server.listen(8888, function () {
console.log('listen to 8888....');
});
上周末又做了一个网页版的, 一会上传。
分享到:
相关推荐
nodejs基础学习视频nodejs基础学习视频nodejs基础学习视频nodejs基础学习视频
scrollback chat 是 nodejs 开发的 web 聊天工具,可以方便的嵌入任何网站。 标签:ScrollBack
NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型...
是我学习nodejs的Xmind路线,从入门到其它的数据库都已齐全。如果对node的学习没有头绪等,可以下载学习。
微信开发者工具+nodejs+mysql 【实现功能】 系统的主要功能包括:首页、个人中心、用户管理、资料类型管理、学习资料管理、系统管理、订单管理等功能。 管理员可以根据系统给定的账号进行登录,登录后可以进入微信...
Node.js 的设计哲学使得它非常适合处理实时、数据密集型的网络应用,如实时聊天、协作工具和流媒体服务。通过事件驱动和非阻塞I/O,Node.js 能够高效地处理大量并发连接,降低服务器成本,提高应用的响应速度。同时...
完整的网页聊天系统,包括用户注册\登录\广播聊天\上线下线提醒等功能,每一段代码都写了详细的注释,包括完整html网页,客户端和服务器. 测试方法:将nodejs拷贝至D盘根目录,双击start.bat进入服务器,打开浏览器,输入...
nodejs安装工具 好用
详细的nodejs入门脑图。包含了node学习必须的基础知识。
NodeJS学习手册是一份专为中文用户设计的详尽教程,旨在帮助初学者和有经验的开发者深入理解和掌握NodeJS这一强大的服务器端JavaScript运行环境。NodeJS基于Chrome V8引擎,以其异步非阻塞I/O和事件驱动的特性,为...
在这个聊天程序中,可能包含了`ws`或`socket.io`库,以及其他辅助工具,如日志记录、路由处理等。使用`npm`(Node Package Manager)可以安装这些依赖,并将其放在`node_modules`下。 学习这个项目,你需要了解以下...
nodejs七本书帮助学习:《Node+Web开发》、《Node,+Up+and+Running》、《Node.js+开发指南》、《NODE.js入门手册》、《Node+Web开发》、《Node入门》、《深入浅出Node.js》
nodejs、webpack学习
NodeJs思维导图总结
nodejs学习.md
so,该篇随笔是建立在”初探nodeJS”之上的,固取名为”进阶之初探nodeJS”。 好了,侃了这多,那么我们即将实现一个什么样的示例呢? 示例说明,如下: 用户通过url之127.0.0.1/login进入登入页面,待用户输入账户...
2. Express框架:简化了Web应用开发,提供了路由、中间件等功能,是NodeJS最流行的Web框架之一。 3. Socket.IO:实现实时通信,支持WebSocket,广泛应用于实时应用如聊天、游戏等。 4. Promise和async/await:处理...
nodejs初级教程