@H_5020@Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制。我便看了一些个教程使用它来搭建一个超级简单的聊天室。
@H5020@
初始化项目
@H502_0@在电脑里新建一个文件夹,叫做“chatroom”,然后使用npm进行初始化:
安装socket.io
@H_502_0@接下来,安装socket.io:实现聊天-服务器端
@H_502_0@首先我们来编写服务器端程序,新建文件“index.js”,在里面导入如下模块:fs.readFile(__dirname + '/index.html',function (err,data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.write(data);
res.end();
});
}).listen(8888);
@H_502_0@fs.readFile()方法用于读取文件,在这里读取的是index.html文件,也就是一会即将要编写的前端聊天室的展示页面。
@H_502_0@第8行是返回请求的状态码,第9行是返回读取到的内容给浏览器。然后这个http server使用listen方法监听8888端口。
@H_502_0@接下来,就是使用socket.io来实现聊天的事件了。在刚刚的index.js文件的http server下面接着创建socket.io对象。
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.write(data);
res.end();
});
}).listen(8888);
实现聊天-客户端
@H_502_0@首先实现界面部分,仅仅有显示消息记录以及消息发送框,代码如下:
<Meta charset="utf-8">
Socket.IO chat
<!-- 消息发送框 -->
<div id="form">
<input id="m" autocomplete="off" /><button id="send">Send</button>
</div>