mirror of
https://github.com/Nezumi-2711/websocket-demo.git
synced 2026-09-22 13:48:31 +00:00
first commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
const { WebSocketServer } = require('ws');
|
||||
const { createServer } = require('http');
|
||||
|
||||
const server = createServer();
|
||||
const wss = new WebSocketServer({ server });
|
||||
|
||||
wss.on('connection', (ws) => {
|
||||
console.log('Client connected');
|
||||
|
||||
// Send welcome message
|
||||
ws.send(JSON.stringify({
|
||||
type: 'welcome',
|
||||
message: 'Connected to WebSocket server!',
|
||||
timestamp: new Date().toISOString()
|
||||
}));
|
||||
|
||||
// Handle incoming messages
|
||||
ws.on('message', (data) => {
|
||||
try {
|
||||
const message = JSON.parse(data.toString());
|
||||
console.log('Received:', message);
|
||||
|
||||
// Broadcast to all connected clients
|
||||
wss.clients.forEach((client) => {
|
||||
if (client.readyState === 1) { // WebSocket.OPEN
|
||||
client.send(JSON.stringify({
|
||||
type: 'broadcast',
|
||||
message: message.message,
|
||||
sender: message.sender || 'Anonymous',
|
||||
timestamp: new Date().toISOString()
|
||||
}));
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error parsing message:', error);
|
||||
}
|
||||
});
|
||||
|
||||
ws.on('close', () => {
|
||||
console.log('Client disconnected');
|
||||
});
|
||||
|
||||
ws.on('error', (error) => {
|
||||
console.error('WebSocket error:', error);
|
||||
});
|
||||
});
|
||||
|
||||
const PORT = process.env.WS_PORT || 8080;
|
||||
server.listen(PORT, () => {
|
||||
console.log(`WebSocket server started on port ${PORT}`);
|
||||
});
|
||||
|
||||
module.exports = { wss };
|
||||
Reference in New Issue
Block a user