根据sails v0.11的新版本,config / sockets.js文件中不推荐使用 onConnect 功能。 我无法实现socket.on事件或从服务器端捕获套接字事件。 有没有办法实施?
通过更新config/bootstrap.js
中的代码作为@mikermcneil建议:
module.exports.bootstrap = function(cb) {
sails.io.on('connect', function (socket){
socket.on('testE', function(data) {
socket.emit('testEvent',{p1:'hehe'});
});
});
cb();
};
答案 0 :(得分:4)
onConnect
生命周期回调
<强> tldr; 强>
从
onConnect
删除config/sockets.js
功能。
不推荐使用onConnect
生命周期回调。相反,如果在连接新套接字时需要执行某些操作,请从新连接的客户端发送请求以执行此操作。 onConnect
的目的始终是为了优化性能(无需对服务器进行初始额外的往返),但其使用可能会导致混乱和竞争条件。如果您迫切需要消除服务器往返,则可以在引导函数(sails.io.on('connect', function (newlyConnectedSocket){})
)中直接在config/bootstrap.js
上绑定处理程序。但请注意,这是不鼓励的。除非您面临真正的生产性能问题,否则您应该使用上面提到的策略来实现连接&#34;连接&#34;逻辑(即在套接字连接后从客户端发送初始请求)。套接字请求是轻量级的,因此这不会给您的应用程序增加任何有形的开销,并且它将有助于使您的代码更具可预测性。