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可以理解成一个全局的上下文环境。