/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 - 2 0 2 2 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġorg . jetbrains . project or . server . core . websocket Ċ Ċ import Ġorg . java _ websocket . WebSocket Ċ import Ġorg . jetbrains . project or . common . protocol . to Client . MainWindow Ċ import Ġorg . jetbrains . project or . server . core . util . set Ssl Ċ import Ġorg . jetbrains . project or . util . logging . Logger Ċ import Ġjava . net . Inet Address Ċ import Ġjava . nio . ByteBuffer Ċ Ċ public Ġclass ĠHttp Ws Server Builder ( private Ġval Ġhost : ĠInet Address , Ġprivate Ġval Ġport : ĠInt ): ĠW s Transport Builder () Ġ{ ĊĊĠ Ġpublic Ġlateinit Ġvar Ġget Main Windows : Ġ() Ġ-> ĠList < MainWindow > ĊĊĠ Ġoverride Ġfun Ġbuild (): ĠHttp Ws Server Ġ{ ĊĠĠĠ Ġval Ġws Server Ġ= Ġ Ġobject Ġ: ĠHttp Ws Server ( host , Ġport ) Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġget Main Windows (): ĠList < MainWindow > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis @ Http Ws Server Builder . get Main Windows () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun ĠonError ( connection : ĠWebSocket ?, Ġe : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis @ Http Ws Server Builder . onError ( connection , Ġe ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Ws Open ( connection : ĠWebSocket ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis @ Http Ws Server Builder . on Ws Open ( connection ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Ws Close ( connection : ĠWebSocket ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis @ Http Ws Server Builder . on Ws Close ( connection ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Ws Message ( connection : ĠWebSocket , Ġmessage : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis @ Http Ws Server Builder . on Ws Message String ( connection , Ġmessage ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġoverride Ġfun Ġon Ws Message ( connection : ĠWebSocket , Ġmessage : ĠByteBuffer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis @ Http Ws Server Builder . on Ws Message ByteBuffer ( connection , Ġmessage ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmessage Ġ= Ġwhen Ġ( val Ġhint Ġ= Ġset Ssl ( ws Server :: set WebSocket Factory )) Ġ{ ĊĠĠĠĠĠ Ġnull Ġ-> Ġ" WebSocket ĠSSL Ġis Ġdisabled " ĊĠĠĠĠĠ Ġelse Ġ-> Ġ" WebSocket ĠSSL Ġis Ġenabled : Ġ$ hint " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlogger Ġ= ĠLogger < Http Ws Server Builder >() ĊĠĠĠ Ġlogger . info Ġ{ Ġmessage Ġ} ĊĊĠĠĠ Ġreturn Ġws Server ĊĠ Ġ} Ċ } Ċ