javascript - Sails.js 0.10 套接字未连接

标签 javascript node.js sockets sails.js

由于有关 sails 套接字实现的过时文档,我正在努力获取基本的“连接”消息。这是我的 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` 连接成功。 (如需帮助,请参阅: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

请注意,套接字需要订阅eventName。要订阅,您需要创建 Controller 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);
            });

关于javascript - Sails.js 0.10 套接字未连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27886987/

相关文章:

javascript - Sails.js - 如何避免 Sails JS 在数据库表上查找 Id(因为该表没有 id 列)

javascript - 按解决/执行时间的顺序解决 promise ?

c - Linux 套接字与 C : recv() not returning a delayed chunk

javascript - 谷歌图表 : information pop-ups do not work on floated div?

javascript - S3 预签名 URL 的格式

node.js - 有没有办法让 chrome-devtools (--inspect) 自动从已结束的进程中分离?

java - C# 中的 ObjectInputStream 和 ObjectOutputStream 的等效项

c - Windows 套接字错误代码 10055

javascript - 数据图悬停弹出

javascript - Firefox 与 Chrome 中的 window.find()