利用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....');
});
上周末又做了一个网页版的, 一会上传。
分享到:
相关推荐
NULL 博文链接:https://mudiyouyou.iteye.com/blog/1735472
nodejs基础学习视频nodejs基础学习视频nodejs基础学习视频nodejs基础学习视频
scrollback chat 是 nodejs 开发的 web 聊天工具,可以方便的嵌入任何网站。 标签:ScrollBack
NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型建模工具源码 NodeJS数据库模型...
是我学习nodejs的Xmind路线,从入门到其它的数据库都已齐全。如果对node的学习没有头绪等,可以下载学习。
文章包含了nodejs的学习资料,包含从入门到精通,深入浅出,服务端开发,中文手册
使用nodejs+express+ejs做的简易聊天室
nodejs 入门文档,仅此文档,可以帮助很多人入门学习
nodejs知识点,对node基础知识的学习,初级阶段对属性的讲解
nodejs相关学习材料
nodejs学习.md
NOdejs 学习资料
完整的网页聊天系统,包括用户注册\登录\广播聊天\上线下线提醒等功能,每一段代码都写了详细的注释,包括完整html网页,客户端和服务器. 测试方法:将nodejs拷贝至D盘根目录,双击start.bat进入服务器,打开浏览器,输入...
nodejs聊天室
nodejs 上的即时聊天程序 这是在网上下载别人的
nodejs&websocket简易聊天demo
经过半个月的短暂学习,nodejs初步入门;这是nodejs学习时的配套源码,希望对想学习nodejs的你有一点点帮助
微信开发者工具+nodejs+mysql 【实现功能】 系统的主要功能包括:首页、个人中心、用户管理、资料类型管理、学习资料管理、系统管理、订单管理等功能。 管理员可以根据系统给定的账号进行登录,登录后可以进入微信...
nodejs架设简单的聊天室,socketio, nodejs.