IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Pomelo杂记(四)

    wangqiuyun发表于 2013-09-30 12:14:09
    love 0

    1、----------------------------------------------------------

    pomelo目前提供了hybridconnector和sioconnector,其中hybridconnector支持socket(TCP)和websocket,sioconnector支持socket.io(websocket的封装)。


    sioconnector使用socket.io(websocket封装)本身有自身是有心跳的,不需要配置,服务端检测客户端退出可以通过心跳超时。

    hybridconnector支持socket(TCP)和websocket,须手动设置心跳、超时断开、字典压缩和protobuf。

    app.set('connectorConfig',
    {
    connector : pomelo.connectors.hybridconnector,
    heartbeat : 30,
    useDict : true,
    useProtobuf: true, //enable useProtobuf
    disconnectOnTimeout: true
    });

    2、----------------------------------------------------------
    before filter中怎样处理error

    如果在before filter中,检测到msg异常,可以调用next(err);来将处理流程直接导向你注册的ErrorHandler。在before filter里面调用next,可以像handler里面一样,封装一个js对象作为返回给客户端的resp。

    3、----------------------------------------------------------

    广播对cpu的消耗较高,如果对广播的实时性要求不高建议选择buffer scheduler,当然也可以自定义scheduler。

    Pomelo框架默认提供两类scheduler。

    pomelo.schedulers.direct - 默认采用的scheduler,直接将上层下来的消息发送出去。
    pomelo.schedulers.buffer - 对上层的消息进行缓存,并定期批量发送出去。可以通过flushInterval初始化参数设置刷新间隔,单位为毫秒,默认值为20毫秒。

    4、----------------------------------------------------------
    nodejs的mysql连接一直有bug,可能会某次连接被关闭,最新版的已经解决这个问题了,需要升级到,"mysql":"2.0.0-alpha8"

    5、----------------------------------------------------------

    你可以用app.set('var_name', var)做全局变量,然后其他需要的地方,只要有app,就直接app.get('var_name')就行了,app可以理解成一个全局的上下文环境。




沪ICP备19023445号-2号
友情链接