Sails.js 0.10 插座未连接

Sails.js 0.10 sockets not connecting

由于有关 sails 套接字实现的文档已过时,我很难获得基本的 'connect' 消息。这是我的 node.js 服务器端代码:

sails.sockets.on('connection', function(socket){
            sails.log.info('socket connected');

            //create room and broadcast a welcome message
            socket.emit('user joined', {'message': 'Welcome to ' + roomName});
            socket.join(roomName);
            socket.broadcast.to(roomName).emit('user joined', {'message': 'Welcome to ' + roomName});
        });

我的客户端:

         var sock = io.connect('http://localhost:8888');
        sock.on('connection', function(socket){
            console.log('conected to server');
        });
        sock.on('user joined', function (json) {
            console.log('socket: ' + json);
        });

我确实在启动时从 sails 本身收到了 OK 消息,但似乎无法获得我自己的连接:

sails.io.js:200 `io.socket` connected successfully. (for help, see: http://sailsjs.org/#!documentation/reference/BrowserSDK/BrowserSDK.html)

我尝试使用 socket.io v1 并遇到了同样奇怪的情况。有任何想法吗?谢谢!

在服务器上 config/sockets.js

module.exports.sockets = {
  onConnect: function(session, socket) {
    sails.log.verbose('>>>    socket user connected');
    sails.sockets.blast('eventName', dataToBlast);
  },
};

文档http://sailsjs.org/#/documentation/anatomy/myApp/config/sockets.js.html

在客户端

io.socket.on('eventName', function(dataToBlast) {
   // process dataToBlast
});

文档http://sailsjs.org/#/documentation/reference/websockets/sails.io.js/io.socket.on.html

注意socket需要订阅eventName。要订阅,您需要创建控制器 SubscribeController.js 并通过套接字请求它的操作。

var SubscribeController = {
  sub: function(req, res) {
     ModelName.subscribe(
         req.socket, 
         [] /*records to subscribe to or empty array to subscribe to all */, 
         ['eventName'] /* array of strings eventNames */
     );
  },
};

为了调试客户端,您可以连接到 firehose,这将为您的客户端提供来自 sails 服务器的所有消息

io.socket.get('/firehose');
io.socket.on('firehose', function newMessageFromSails(message) {
                typeof console !== 'undefined' &&
                    console.log('New message published from Sails ::\n', message);
            });