在前端拦截来自外部库的 Web 套接字调用?
Posted
技术标签:
【中文标题】在前端拦截来自外部库的 Web 套接字调用?【英文标题】:Intercept web socket call at frontend being made from an external library? 【发布时间】:2020-07-16 15:50:44 【问题描述】:我有这个要求,在我的 Angular 应用程序中,我有另一个 Angular 模块,比如说,UtilModule,在 imports 部分我的主要 NgModule。 UtilModule 是从 node_module 导入的,如下所示:-
import UtilModule from "utillib";
UtilModule 有各种服务,其中之一是 websocket 服务,它在使用window.location
+ 硬编码字符串值形成的 url 处形成 websocket 连接。
我的主要组件扩展了一个使用这个 websocket 服务的类(也是 UtilModule 的一部分)。
现在我无法更改 websocket 服务正在使用的 url 的值。但我不想指向这个 url,而是想将它指向我的 websocket 后端实际所在的特定 url。
我怎样才能做到这一点?可能是前端本身的某种请求拦截器将其重定向到所需的 url?
【问题讨论】:
【参考方案1】:图书馆是否直接导出其服务?
没有看到实际的库,我只是在这里猜测......
你可以
-
创建一个扩展他们的新服务,
尝试在新的 uri 中更改 uri
然后在您的模块提供商中,您可以使用
useClass
选项将他们的服务与您的服务交换
取决于您使用服务的方式(如果您直接导入它,或者如果库在内部使用它),这可能会或可能不会工作
【讨论】:
您好,感谢您花时间回答。我在服务中找到了一个没有扩展它的方法,因为它是一个单例,我可以使用它在所需的 url 上创建一个新的 websocket 连接。以上是关于在前端拦截来自外部库的 Web 套接字调用?的主要内容,如果未能解决你的问题,请参考以下文章