0

创建例如assets/js/dependencies/app.io.js

io.socket.on('connect', function socketConnected() {
  console.debug("This is from the connect: ", io.socket);
  console.debug("WebSocket is connected:", io.socket.isConnected());

  io.socket.get('/user', function(resData) {
    console.debug(resData);
  });
});

安慰

  |>    Now connected to Sails.
\___/   For help, see: ....
        (using sails.io.js browser SDK @v0.13.7)

app.io.js:3 This is from the connect:  SailsSocket {headers: undefined, eventQueue: Object, isConnecting: false, extraHeaders: Object, hostname: "localhost"…}
app.io.js:4 WebSocket is connected: true
app.io.js:7 Not implemented in core yet    <========= WHY?

注意:io-socket-get 文档

为什么我会收到此消息?

有关如何解决此问题的任何指示?

4

1 回答 1

2

我们需要更多信息,例如:

  1. 你在使用像 Angular 这样的 js 框架吗?
  2. 您是否使用 Bower 等工具管理依赖项?
  3. 你的 Sails 服务器是如何配置的?

最重要的是,我可以向您展示我是如何配置 Sails 后端的:

在我的.sailsrc我有如下配置的钩子

"hooks": {
"csrf": false,
"grunt": false,
"i18n": false,
"pubsub": false,
"session": false,
"sockets": true,
"views": false}

然后在我的UserController.js我有这个简单的方法可以启用套接字通信

enableNtofications: function(req, res){

    // checking if the request comes from
    // a socket request
    if(req.isSocket){

        // getting the current logged user
        var user = req.user;

        // subuscribing the client to model changes
        User.subscribe(req, [user.id]);

        return res.ok();

    } else {
        return res.badRequest();
    }

},

我的前端使用 Angular 和一个ngSails模块,它是 Angular 的“sails.io”的一种包装器

在我的“UserService.js”中,我可以做类似的事情

        // waiting for notifications on User
        $sails.on('user', function(event) {
            if (event) {
                // manage the message here...
            }
        });

然后调用服务器方法以启用套接字

        // calling the service
        return $sails.post('/user/enableNtofications').then(
            // ok
            function() {},
            // ko
            function(data) {
                console.log("enable notifications KO");
                console.log(data.error);
            });

(您还需要注入 '$sails' 模块并正确配置它......)

希望这可以帮助你

于 2016-10-13T17:20:07.597 回答