baseconnection.ts 767 B

1234567891011121314151617181920212223242526272829303132333435
  1. import { EventEmitter } from "eventemitter3";
  2. import { Peer } from "./peer";
  3. import { RTCPeerConnection } from "./adapter";
  4. import { ServerMessage } from "./servermessage";
  5. import { ConnectionType } from "./enums";
  6. export abstract class BaseConnection extends EventEmitter {
  7. protected _open = false;
  8. readonly metadata: any;
  9. connectionId: string;
  10. peerConnection: RTCPeerConnection;
  11. abstract get type(): ConnectionType;
  12. get open() {
  13. return this._open;
  14. }
  15. constructor(
  16. readonly peer: string,
  17. readonly provider: Peer,
  18. readonly options: any
  19. ) {
  20. super();
  21. this.metadata = options.metadata;
  22. this.connectionId = options.connectionId;
  23. }
  24. abstract close(): void;
  25. abstract handleMessage(message: ServerMessage): void;
  26. }