【发布时间】:2019-08-24 08:57:46
【问题描述】:
我试图实时监听 socket.io 事件,我在 Node 中有一个后端,正在发出它,还有一个前端服务在监听它,但它只在我重新加载页面后显示在视图中。
我的应用程序将在几秒钟内发送很多事件(每个事件都是一个 Post 请求),在我发送一个 post 请求后,我的后端 console.log 是即时的(这是我想要的),但正如我所说,我的前端不是。
节点:
const event = req.body;
app.post('/webhook', (req, res) => {
io.sockets.on('connection', function (socket) {
socket.emit('event', require('util').inspect(event));
});
res.json({
status: 'ok'
});
});
服务:
observable:Observable<string>;
socket;
constructor() {
this.socket = io("http://localhost:8080");
}
getData(event: String) : Subject<any> {
let subj = new Subject;
this.socket.on(event, data => subj.next(data));
return subj;
}
组件:
constructor(private _eventsService : EventsService) {
this._eventsService.getData('event').subscribe(data => {
console.log(data); // Only logs after reload
});
}
基本上我想在前端继续监听事件,当我向 /webhook 发送 Post 请求时,将发出该事件,并且我的视图更新(或日志等)。
【问题讨论】:
-
你可能会觉得这篇文章很有趣medium.freecodecamp.org/…
标签: javascript node.js angular socket.io rxjs