javascript-Sails.js-如何设置Sails套接字配置?
作者:互联网
我昨天研究过sockets,socket.io和航行,不得不说我很迷路.我以前从未用过它们.我以为我明白了,但是我不确定.
我的工作基于http://socket.io/get-started/chat/.我正在使用Sails.js框架,该框架添加了自己的方法来处理套接字等.
在config / sockets.js中,我们有一个onConnect和onDisconnect方法.参见https://github.com/balderdashy/sails-docs/blob/master/reference/sails.config/sails.config.sockets.md和(源代码)https://gist.github.com/Vadorequest/568afc14294f1448ab55
我将比较sails和socket.io,让我们看一下这段代码:
io.on('connection', function(socket){
console.log('a user connected');
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
当socket.io打开(连接)时,它使用socket.emit方法定义来自客户端或服务器的侦听器,如socket.on(‘disconnect’),它们正在等待来自客户端或服务器的已发出请求.
我以为,帆onConnect等效于socket.io io.on(connection).然后sails onDisconnect方法等效于io.on(connection)内部的socket.on(‘disconnect’),它就像一个快捷方式,可以正确地处理此特定事件并尊重其标准(方法以on开头).
但是我已经将代码展示给了一个已经使用过socket.io并且可以航行的朋友,他告诉我我错了,我正在做的是在另一个监听器中定义一个监听器,这会导致混乱.最小).
我想知道我是否误解了如何设置Sails套接字.
如果我错了,我会哭,但我会克服它.
解决方法:
我的第一印象实际上是正确的,因此Sails为我们隐藏了socket.io逻辑,这两个代码是等效的,第一个代码使用socket.io,第二个代码使用Sails config / sockets.js方式:
// Socket.io way
io.on('connection', function(socket){
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
// Sails way (config/sockets.js), hide the socket.io logic. (Facade design pattern)
module.exports.sockets = {
onDisconnect: function(session, socket) {
console.log('user disconnected');
}
}
同样,Sails onConnect方法等效于
io.on('connection', function(socket){
socket.on('connect', function() {
console.log('user connected');
});
});
标签:node-js,sockets,socket-io,sails-js,javascript 来源: https://codeday.me/bug/20191121/2048769.html