Angular 6中的Socket-io客户端尝试建立与错误套接字的连接

时间:2018-09-11 09:42:37

标签: angular sockets websocket socket.io angular6

我试图将用旧的javascript编写的应用程序转换为用Angular-版本6编写的应用程序。此应用程序的主要部分是建立与后端服务器的连接。为此,我找到了库“ socket.io-client”。如许多问题所述,我通过以下命令安装了它:

npm install socket.io-client --save
npm install @types/socket.io-client --save-dev

然后,我在应连接到套接字的“ ChatService”类中使用了该库:

import {Inject, Injectable} from '@angular/core';
import {Observable} from 'rxjs';
import * as io from 'socket.io-client';

@Injectable()
export class ChatService {
  private socket: SocketIOClient.Socket;

  constructor() {
    this.socket = io('http://127.0.0.1:9092/chat1');
  }

  // EMITTER
  sendMessage(msg: string) {
    this.socket.emit('sendMessage', { message: msg });
  }

  // HANDLER
  onNewMessage() {
    return Observable.create(observer => {
      this.socket.on('newMessage', msg => {
        observer.next(msg);
      });
    });
  }
}

如代码中所示,我的套接字可以在带有聊天室1的端口9092下访问。有趣的是,此io('url')命令似乎连接到错误的主机。在调查网络流量时,可以遵循此步骤。在这里可以看到以下内容: Network traffic

我的旧应用程序能够连接到该后端应用程序,因此可以访问该后端。

所以问题是,如何配置应用程序以连接到端口9092而不是端口4200(这是标准的角度端口)。是否有一些配置可以覆盖io('xxxx')功能?

更新 似乎this.socket = io('xxx')命令实际上什么也没做。我之前附加的网络流量映像是angular用于更新应用程序的映像。有什么想法吗?

0 个答案:

没有答案