如何在环回 4 的 RestApplication 中使用 socket.io?
Posted
技术标签:
【中文标题】如何在环回 4 的 RestApplication 中使用 socket.io?【英文标题】:How to use socket.io in RestApplication of loopback 4? 【发布时间】:2019-12-04 05:31:44 【问题描述】:我在 Loopback 4 中创建了我的 rest 应用程序,现在我想在其中实现套接字。 RestApplication有什么办法吗?
export class MyApplication extends BootMixin(
ServiceMixin(RepositoryMixin(RestApplication)),
)
constructor(
options: ApplicationConfig =
)
super(options);
....
async start()
await super.start();
const io = socketio(this.restServer);
io.on('connection', (socket: any) =>
console.log('connected');
);
const io = socketio(this.restServer);
不适合我
【问题讨论】:
您找到解决问题的方法了吗? 【参考方案1】:这是一个带有 socket.io 集成的官方 Loopback 4 示例。创建此示例是为了探索如何与 LoopBack 控制器一起公开 Websocket (socket.io) 端点。
https://github.com/raymondfeng/loopback4-example-websocket
【讨论】:
你提到的例子是使用HttpServer类实现的,但是我的应用程序使用了RestApplication类和restServer,所以我现在的项目中无法使用它。【参考方案2】:我已经在 Loopback 4 中创建了我的 REST 应用程序,现在我想在其中实现套接字。
您的需求是什么?客户A成功调用一个REST API后,这个调用的结果会通过websocket发送到指定的客户端吗?
你可以在application.ts
(how to creat websocket server)同时创建rest server和websocket server。然后你可以创建Interceptor,在每个控制器方法被调用后通过websocket发送消息。
【讨论】:
以上是关于如何在环回 4 的 RestApplication 中使用 socket.io?的主要内容,如果未能解决你的问题,请参考以下文章
如何接收 Post 请求正文并将该正文传递给我在环回中的函数