gpt4 book ai didi

运行时 Angular 更改 Socket.io url

转载 作者:行者123 更新时间:2023-12-04 15:33:10 28 4
gpt4 key购买 nike

我的 app.module.ts 是这样的:

// Imports
import { SocketIoModule, SocketIoConfig } from './../../node_modules/ngx-socket-io';
const config: SocketIoConfig = {
url: 'http://192.168.0.101:3000',
options: {}
};

@NgModule({
declarations: [AppComponent],
imports: [
// modules..
SocketIoModule.forRoot(config)
],
//..
})
export class AppModule {}

希望能够更改 config.url 值。但我不知道该怎么做,因为在初始化后更改 config.url 值不会在 SocketIoModule.forRoot(config) 上更改它。

最佳答案

就像@03c7c0ace395d80182db07ae2c30f0 说的。

解决方法:app.module.ts 中的配置类似于

let config: SocketIoConfig = {
url: 'http://192.168.43.142:9780',
options: {},
};

并制作了一个服务来处理 URL 更改(在此代码中仅端口更改但应该相同):

import { Injectable } from '@angular/core';
import { Socket, SocketIoConfig } from './../../../node_modules/ngx-socket-io';

@Injectable({
providedIn: 'root',
})
export class SocketService {
config: SocketIoConfig = {
url: 'http://192.168.43.142:9780',
options: {},
};

constructor(private socket: Socket) {
this.socket = new Socket(this.config);
}

changeToAdminSocket() {
this.socket.disconnect();
this.config.url = 'http://192.168.43.142:9781'; // Note the port change
this.socket = new Socket(this.config);
}
}

关于运行时 Angular 更改 Socket.io url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60685483/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com