【问题标题】:Where the best place to put a websocket connector. Angular放置 websocket 连接器的最佳位置。角
【发布时间】:2018-07-17 13:40:46
【问题描述】:

我有一个私人 websocket,这个 websocket 给我带来了关于用户的信息,比如余额、通知和其他东西。所有应用程序都需要使用这个 websocket。我有一个组件,我在这个 websocket 中连接,我创建了一个发射器,以便在收到新消息时进行广播。示例:websocket 组件接收消息并向组件 x 发送事件。

这是实现它的最佳方式吗?

我正在使用 Angular 6 来构建这个应用程序。

【问题讨论】:

    标签: angular websocket separation-of-concerns code-separation


    【解决方案1】:

    据我所知,这是最好的方法,将 websocket 放在应用程序使用的公共组件中。

    只需注意您在该 websocket 中使用的信息,我的意思是只发送您需要的信息,当您的应用程序有很多 websockets 时,它可能会崩溃,这取决于您如何处理 websockets,如果如果您只发送您需要的信息,如果您不进行不必要的 websockets 调用,那么您只是将其发送给应该接收该信息的用户。

    【讨论】:

    • 我的应用程序连接到 5 个 websocket。其中 1 个是私有 websocket,其他的对所有用户都是全局的。一开始我想把所有到 websocket 的连接放在 app.component 中,并在收到消息时发送发射器。
    • 这可以正常工作,我的意思是这就是你需要的东西,应该没问题。
    • 感谢您的帮助!
    【解决方案2】:

    我的建议是提供一项服务来容纳套接字连接和设置。

    这个想法是让服务将套接字数据分发给需要数据的尽可能多的组件。此外,通过将其作为服务执行,您可以保证 Angular 可以确保该服务只有一个副本,从而删除任何可能的不必要的重复连接。

    【讨论】:

    • 我想我正在这样做。但另一方面。应该接收消息的组件在“newXThing”之类的事件中订阅并执行您必须对消息执行的操作。
    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多