没有获得模型更新。 socket.io 和 sails.js
not getting updates on model. socket.io with sails.js
我有一个使用选项 --no-linker --no-front end
创建的 sails 应用程序。应用程序的前端写在angular2
。发出请求并 post,似乎工作正常。
当我向路由发送 get 请求(订阅)时,我没有收到有关正在创建、更新或销毁的模型的任何更新。
我还创建了一个特殊的动作,所以我可以自己做,但仍然没有运气。
在路由上执行的更新是使用套接字进行的。我不知道这里哪里错了。在下面找到我的代码
import { Injectable, OnInit, EventEmitter } from '@angular/core'
import { Subject } from 'rxjs/Subject';
import { Donor } from './donor.interface';
import * as socketIO from 'socket.io-client'
import * as sailsIO from 'sails.io'
const url = 'http://localhost:1337'
const io = sailsIO(socketIO)
io.sails.reconnection = true;
io.sails.url = url;
io.socket.on('connect', function () {
console.log("connected to server")
io.socket.get('/donor', function (data, jwres) {
console.log("i subscribed", data, jwres)
})
io.socket.get('/donor/hello', function (data, jwres) {
console.log("i subscribed with hello", data, jwres)
})
io.socket.on('donor', function (data) {
console.log("new donor was created", data)
});
});
io.socket.on('disconnect', function () {
console.log('Lost connection to server');
});
DonorController.js
module.exports = {
hello: function (req, res) {
if (req.isSocket) {
Donor.watch(req.socket)
console.log("new subscriber found")
} else {
console.log("not a socket req")
}
return res.ok();
}
};
所以我想通了这个问题。当您进行更新(CRUD)时,执行此类操作的套接字不会收到更新。
我花了几个小时才弄明白这一点。因此,如果 CRUD 操作成功,我所做的就是对数据采取行动,就像我将在具有 on
的模型上列出的那样
我有一个使用选项 --no-linker --no-front end
创建的 sails 应用程序。应用程序的前端写在angular2
。发出请求并 post,似乎工作正常。
当我向路由发送 get 请求(订阅)时,我没有收到有关正在创建、更新或销毁的模型的任何更新。
我还创建了一个特殊的动作,所以我可以自己做,但仍然没有运气。
在路由上执行的更新是使用套接字进行的。我不知道这里哪里错了。在下面找到我的代码
import { Injectable, OnInit, EventEmitter } from '@angular/core'
import { Subject } from 'rxjs/Subject';
import { Donor } from './donor.interface';
import * as socketIO from 'socket.io-client'
import * as sailsIO from 'sails.io'
const url = 'http://localhost:1337'
const io = sailsIO(socketIO)
io.sails.reconnection = true;
io.sails.url = url;
io.socket.on('connect', function () {
console.log("connected to server")
io.socket.get('/donor', function (data, jwres) {
console.log("i subscribed", data, jwres)
})
io.socket.get('/donor/hello', function (data, jwres) {
console.log("i subscribed with hello", data, jwres)
})
io.socket.on('donor', function (data) {
console.log("new donor was created", data)
});
});
io.socket.on('disconnect', function () {
console.log('Lost connection to server');
});
DonorController.js
module.exports = {
hello: function (req, res) {
if (req.isSocket) {
Donor.watch(req.socket)
console.log("new subscriber found")
} else {
console.log("not a socket req")
}
return res.ok();
}
};
所以我想通了这个问题。当您进行更新(CRUD)时,执行此类操作的套接字不会收到更新。
我花了几个小时才弄明白这一点。因此,如果 CRUD 操作成功,我所做的就是对数据采取行动,就像我将在具有 on