编程语言
首页 > 编程语言> > javascript-Sails.js-如何设置Sails套接字配置?

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