File tree Expand file tree Collapse file tree 3 files changed +87
-0
lines changed Expand file tree Collapse file tree 3 files changed +87
-0
lines changed Original file line number Diff line number Diff line change 1+ <!DOCTYPE html>  
2+ < html  lang ="en "> 
3+ < head > 
4+   < meta  charset ="UTF-8 "> 
5+   < meta  name ="viewport " content ="width=device-width, initial-scale=1.0 "> 
6+   < title > WebSocket Chat</ title > 
7+ </ head > 
8+ < body > 
9+   < h1 > WebSocket Chat</ h1 > 
10+   < input  type ="text " id ="messageInput " placeholder ="Type your message "> 
11+   < button  onclick ="sendMessage() "> Send</ button > 
12+ 
13+   < script  src ="client.js "> </ script > 
14+ </ body > 
15+ </ html > 
Original file line number Diff line number Diff line change 1+ // Create a WebSocket connection 
2+ const  socket  =  new  WebSocket ( 'ws://localhost:8080' ) ; 
3+ 
4+ // Event listener for when the connection is opened 
5+ socket . addEventListener ( 'open' ,  ( event )  =>  { 
6+   console . log ( 'Connected to WebSocket server' ) ; 
7+ } ) ; 
8+ 
9+ // Event listener for messages from the server 
10+ socket . addEventListener ( 'message' ,  ( event )  =>  { 
11+   console . log ( `Received from server: ${ event . data }  ` ) ; 
12+ } ) ; 
13+ 
14+ // Event listener for when the connection is closed 
15+ socket . addEventListener ( 'close' ,  ( event )  =>  { 
16+   if  ( event . wasClean )  { 
17+     console . log ( 'Connection closed cleanly' ) ; 
18+   }  else  { 
19+     console . error ( 'Connection abruptly closed' ) ; 
20+   } 
21+ } ) ; 
22+ 
23+ // Event listener for connection errors 
24+ socket . addEventListener ( 'error' ,  ( event )  =>  { 
25+   console . error ( 'WebSocket error:' ,  event ) ; 
26+ } ) ; 
27+ 
28+ // Send a message to the server 
29+ function  sendMessage ( )  { 
30+   const  message  =  document . getElementById ( 'messageInput' ) . value ; 
31+   console . log ( message ) ; 
32+   socket . send ( message ) ; 
33+ } 
Original file line number Diff line number Diff line change 1+ // Import required modules 
2+ const  http  =  require ( 'http' ) ; 
3+ const  WebSocket  =  require ( 'ws' ) ; 
4+ 
5+ // Create an HTTP server 
6+ const  server  =  http . createServer ( ( req ,  res )  =>  { 
7+   res . writeHead ( 200 ,  {  'Content-Type' : 'text/plain'  } ) ; 
8+   res . end ( 'WebSocket Server Running' ) ; 
9+ } ) ; 
10+ 
11+ // Create a WebSocket server by passing the HTTP server 
12+ const  wss  =  new  WebSocket . Server ( {  server } ) ; 
13+ 
14+ // WebSocket server event handling 
15+ wss . on ( 'connection' ,  ( ws )  =>  { 
16+   console . log ( 'Client connected' ) ; 
17+ 
18+   // Event listener for messages from clients 
19+   ws . on ( 'message' ,  ( message )  =>  { 
20+     console . log ( `Received: ${ message }  ` ) ; 
21+     
22+     // Broadcast the message to all connected clients 
23+     wss . clients . forEach ( ( client )  =>  { 
24+       if  ( client  !==  ws  &&  client . readyState  ===  WebSocket . OPEN )  { 
25+         client . send ( message ) ; 
26+       } 
27+     } ) ; 
28+   } ) ; 
29+ 
30+   // Event listener for client disconnection 
31+   ws . on ( 'close' ,  ( )  =>  { 
32+     console . log ( 'Client disconnected' ) ; 
33+   } ) ; 
34+ } ) ; 
35+ 
36+ // Start the HTTP server on port 8080 
37+ server . listen ( 8080 ,  ( )  =>  { 
38+   console . log ( 'Server listening on http://localhost:8080' ) ; 
39+ } ) ; 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments