【问题标题】:Intercept web socket call at frontend being made from an external library?在前端拦截来自外部库的 Web 套接字调用?
【发布时间】:2020-07-16 15:50:44
【问题描述】:

我有这个要求,在我的 Angular 应用程序中,我有另一个 Angular 模块,比如说,UtilModule,在 imports 部分我的主要 NgModuleUtilModule 是从 node_module 导入的,如下所示:-

import {UtilModule} from "utillib";

UtilModule 有各种服务,其中之一是 websocket 服务,它在使用window.location + 硬编码字符串值形成的 url 处形成 websocket 连接。

我的主要组件扩展了一个使用这个 websocket 服务的类(也是 UtilModule 的一部分)。

现在我无法更改 websocket 服务正在使用的 url 的值。但我不想指向这个 url,而是想将它指向我的 websocket 后端实际所在的特定 url。

我怎样才能做到这一点?可能是前端本身的某种请求拦截器将其重定向到所需的 url?

【问题讨论】:

    标签: javascript angular web websocket


    【解决方案1】:

    图书馆是否直接导出其服务?

    没有看到实际的库,我只是在这里猜测......

    你可以

    1. 创建一个扩展他们的新服务,
    2. 尝试在新的 uri 中更改 uri
    3. 然后在您的模块提供商中,您可以使用 useClass 选项将他们的服务与您的服务交换

    取决于您使用服务的方式(如果您直接导入它,或者如果库在内部使用它),这可能会或可能不会工作

    【讨论】:

    • 您好,感谢您花时间回答。我在服务中找到了一个没有扩展它的方法,因为它是一个单例,我可以使用它在所需的 url 上创建一个新的 websocket 连接。
    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 2012-11-04
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多