socket.io 聊天室记录

一个干净不简单的聊天室开发记录。。。

准备工作

主要使用了 expresssocket.io 完成。

首先还是找文章 => 手把手教你撸一个网页聊天室

确定使用 socket.io 这个插件后,先阅读他的文档 => socket.io

官网暂时没有支持中文,如果你英文好,可以和他死磕;

如果你英文不太行, 不妨先百度个中文文档看看 => socket.io官方文档中文版

相关接口

简单的聊天室,常用的接口:

  1. 引入 socket.io
1
2
3
4
5
// 使用 Node http 服务器
var app = require('http').createServer(handler)
// 使用 Express 3/4
var app = require('express')();
var io = require('socket.io')(app);

引用 socket.io 模块返回的其实是一个方法,此方法需要传入一个 HTTP 服务器实例。

客户端引入只要引入相应 js 就行

1
<script src="/socket.io/socket.io.js"></script>

直接在全局挂载 io 对象,用来处理链接相关。

  1. 建立链接,socket.io 采用关键字事件监听的模式。

服务端:

1
2
3
io.on('connection', function (socket) {
... do some things ...
});

其中,回掉函数的参数 socket 就是本次生成的 websocket 链接实例,有自己的独立作用域。

客户端:

1
var socket = io('http://localhost');

输入服务器接口地址,返回本次链接的实例

  1. 建立链接后,就要监听信息,实际 socket 的通信就是通过