1515 */
1616
1717import { App , SSLApp , WebSocket , HttpRequest , TemplatedApp } from "uWebSockets.js" ;
18- import { Tracker , PeerContext , TrackerError } from "./tracker" ;
18+ import { Tracker , TrackerError } from "./tracker" ;
1919import { StringDecoder } from "string_decoder" ;
2020
2121import * as Debug from "debug" ;
@@ -104,18 +104,16 @@ export class UWebSocketsTracker {
104104 return ;
105105 }
106106
107- let peer : PeerContext | undefined = ws . peer ;
108- if ( peer === undefined ) {
109- peer = createPeer ( ws ) ;
110- ws . peer = peer ;
107+ if ( ws . sendMessage === undefined ) {
108+ ws . sendMessage = sendMessage ;
111109 }
112110
113111 if ( debugMessagesEnabled ) {
114- debugMessages ( "in" , peer . id !== undefined ? Buffer . from ( peer . id ) . toString ( "hex" ) : "unknown peer" , json ) ;
112+ debugMessages ( "in" , ws . id !== undefined ? Buffer . from ( ws . id ) . toString ( "hex" ) : "unknown peer" , json ) ;
115113 }
116114
117115 try {
118- this . tracker . processMessage ( json , peer ) ;
116+ this . tracker . processMessage ( json , ws as any ) ;
119117 } catch ( e ) {
120118 if ( e instanceof TrackerError ) {
121119 debugWebSockets ( "failed to process message from the peer:" , e ) ;
@@ -128,24 +126,20 @@ export class UWebSocketsTracker {
128126
129127 private onClose = ( ws : WebSocket , code : number , message : ArrayBuffer ) => {
130128 this . webSocketsCount -- ;
131- const peer : PeerContext | undefined = ws . peer ;
132129
133- if ( peer !== undefined ) {
134- delete ws . peer ;
135- this . tracker . disconnectPeer ( peer ) ;
130+ if ( ws . sendMessage !== undefined ) {
131+ this . tracker . disconnectPeer ( ws as any ) ;
132+ delete ws . sendMessage ;
133+ delete ws . id ;
136134 }
137135
138136 debugWebSockets ( "closed with code" , code ) ;
139137 }
140138}
141139
142- function createPeer ( ws : WebSocket ) : PeerContext {
143- return {
144- sendMessage : ( json : any ) => {
145- ws . send ( JSON . stringify ( json ) , false , false ) ;
146- if ( debugMessagesEnabled ) {
147- debugMessages ( "out" , ws . peer . id !== undefined ? Buffer . from ( ws . peer . id ) . toString ( "hex" ) : "unknown peer" , json ) ;
148- }
149- } ,
150- } ;
140+ function sendMessage ( json : any , ws : WebSocket ) {
141+ ws . send ( JSON . stringify ( json ) , false , false ) ;
142+ if ( debugMessagesEnabled ) {
143+ debugMessages ( "out" , ws . id !== undefined ? Buffer . from ( ws . id ) . toString ( "hex" ) : "unknown peer" , json ) ;
144+ }
151145}
0 commit comments