22
33const fs = require ( 'fs' ) ;
44const http = require ( 'http' ) ;
5- const Websocket = require ( 'websocket' ) . server ;
5+ const WebSocket = require ( 'ws' ) ;
66
77const index = fs . readFileSync ( './index.html' , 'utf8' ) ;
88
@@ -15,30 +15,20 @@ server.listen(8000, () => {
1515 console . log ( 'Listen port 8000' ) ;
1616} ) ;
1717
18- const ws = new Websocket ( {
19- httpServer : server ,
20- autoAcceptConnections : false
21- } ) ;
22-
23- const clients = [ ] ;
18+ const ws = new WebSocket . Server ( { server } ) ;
2419
25- ws . on ( 'request' , req => {
26- const connection = req . accept ( '' , req . origin ) ;
27- clients . push ( connection ) ;
28- console . log ( 'Connected ' + connection . remoteAddress ) ;
20+ ws . on ( 'connection' , ( connection , req ) => {
21+ const ip = req . socket . remoteAddress ;
22+ console . log ( `Connected ${ ip } ` ) ;
2923 connection . on ( 'message' , message => {
30- const dataName = message . type + 'Data' ;
31- const data = message [ dataName ] ;
32- console . dir ( message ) ;
33- console . log ( 'Received: ' + data ) ;
34- clients . forEach ( client => {
35- if ( connection !== client ) {
36- client . send ( data ) ;
37- }
38- } ) ;
24+ console . log ( 'Received: ' + message ) ;
25+ for ( const client of ws . clients ) {
26+ if ( client . readyState !== WebSocket . OPEN ) continue ;
27+ if ( client === connection ) continue ;
28+ client . send ( message ) ;
29+ }
3930 } ) ;
40- connection . on ( 'close' , ( reasonCode , description ) => {
41- console . log ( 'Disconnected ' + connection . remoteAddress ) ;
42- console . dir ( { reasonCode, description } ) ;
31+ connection . on ( 'close' , ( ) => {
32+ console . log ( `Disconnected ${ ip } ` ) ;
4333 } ) ;
4434} ) ;
0 commit comments