pomelo 框架第四部分 connector/connection/session服务

本文详细介绍了pomelo框架中connector、connection和session的服务。从connector的初始化、start过程,到connection的服务实现,再到session的创建、转换和管理,深入剖析了客户端连接流程和session的生命周期。同时,文中提到了关键组件如switcher、wsprocessor以及sessionService的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pomelo 框架第四部分

项目地址: https://github.com/NetEase/chatofpomelo-websocket.git
分支:tutorial-protobuf
如果发现有错误的地方,请在评论中及时指出,谢谢

一、connector的服务

1. 初始化new及启动start

connector.js:

var Component = function (app, opts) {
    opts = opts || {};
    this.app = app;
    this.connector = getConnector(app, opts);
};
var getConnector = function (app, opts) {
    var connector = opts.connector;
    var curServer = app.getCurServer();
    return connector(curServer.clientPort, curServer.host, opts);
};
app.configure('production|development', 'connector', function(){
	app.set('connectorConfig',
		{
			connector : pomelo.connectors.hybridconnector,
			heartbeat : 3,
            useDict: true,
            useProtobuf: true 
		});
});

对于初始化connector服务来说,由于我们之前在app.js中对connectorConfig进行了配置,所以此时初始化connector用到的是pomelo.connectors.hybridconnector服务(请参照第一部分内容),实则初始化hybridconnector服务。

pro.start = function (cb) {
    this.server = this.app.components.__server__;
    this.session = this.app.components.__session__;
    this.connection = this.app.components.__connection__;
};

appUtil.optComponents中调用connector.start方法,把server组件、session和connection组件绑定到connector属性上,为后续操作提供服务。

2. connector.afterStart

pro.afterStart = function (cb) {
    this.connector.start(cb);
    this.connector.on('connection', hostFilter.bind(this, bindEvents));
};

由于connector为hybirdconnector,所以start为hybirdconnector.start方法,在监听connection,触发hostFilter.bind(this, bindEvents)

3. hybirdconnector.start

Connector.prototype.start = function (cb) {
    var app = require('../pomelo').app;
    var self = this;

    var gensocket = function (socket) {
        var hybridsocket = new HybridSocket(curId++, socket);
        hybridsocket.on('handshake', self.handshake.handle.bind(self.handshake, hybridsocket));
        hybridsocket.on('heartbeat', self.he
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值