作者:shihuaping0918@163.com,转载请注明作者
connector是一个重量级组件,它依赖connection/server/pushScheduler/session组件。
对session组件的依赖是对连接创建一个session。
对connection的依赖是连接数的增加减少,以及登录用户uid的管理。
对pushScheduler的依赖是,当异步发送时,把发送任务放到scheduler里。
对server的依赖就是取一些配置,以及server本身的信息。
下面依次对它们进行介绍。首先从session开始,session和connection的依赖代码有一部分是在一起的。
/**
* get session for current connection
*/
var getSession = function(self, socket) {
var app = self.app,
sid = socket.id;
var session = self.session.get(sid); //sid
if (session) {
return session;
}
//这里创建一个session,
session = self.session.create(sid, app.getServerId(), socket);
logger.debug('[%s] getSession session is created with session id: %s', app.getServerId(), sid);
// bind events for session
socket.on('disconnect', session.closed.bind(session));
socket.on('error', session.closed.bind(session));
session.on('closed', onSes