1

我最近潜入了 Sails 并运行了一个基本工具。然而只是部分。我订阅了一个名为“工作”的模型的更改。但我只收到一条消息,当我通过邮递员 PUT、POST 或 DELETE 时,而不是当我使用浏览器的 io.socket 本身时。

我的订阅:

io.socket.on('connect', function connected() {
  io.socket.on('job', function jobReceived(message) {
    console.log("Got job", message);
  });
});

我的基于浏览器的创建:

io.socket.post("/job", {uuid: 'someuuid', ..... }, function(data, err){
  console.log(data||err);
  io.socket.publishCreate(data.uuid); // Thought this might help, but is not defined.
});

一旦我刷新了页面,我基于浏览器创建的数据也在那里,所以它被存储了,但没有触发消息。

编辑:

使用 Angular 的 $http.post(...) 时,它可以工作并发送消息。它必须与插座有关...

为什么 Postman/Angular 会触发消息而 io.socket 不会?

编辑2:

我在应用程序的不同位置执行 GET。由于我可以接收直接从 Sails 服务器发出的任何更新,因此在这种情况下,我认为我的订阅不是问题。

4

1 回答 1

0
io.socket.on('connect', function connected() {
    // Subscribe using Socket.GET
    io.socket.get('job');
    io.socket.on('job', function jobReceived(message) {
        console.log("Got job", message);
    });
});

Sails.js 资源丰富的 PubSub的文档

于 2015-05-16T16:25:53.220 回答