genesis
This commit is contained in:
51
server.js
Normal file
51
server.js
Normal file
@@ -0,0 +1,51 @@
|
||||
const express = require('express');
|
||||
const WebSocket = require('ws');
|
||||
const http = require('http');
|
||||
|
||||
const app = express();
|
||||
const server = http.createServer(app);
|
||||
const wss = new WebSocket.Server({ server, path: '/counter-ws' });
|
||||
|
||||
let counter = 0; // In-memory counter (resets on server restart)
|
||||
|
||||
app.use(express.json());
|
||||
|
||||
// API endpoint to get current counter value
|
||||
app.get('/api/counter', (req, res) => {
|
||||
res.json({ value: counter });
|
||||
});
|
||||
|
||||
// API endpoint to increment counter
|
||||
app.post('/api/counter/increment', (req, res) => {
|
||||
counter += 1;
|
||||
res.json({ value: counter });
|
||||
|
||||
// Broadcast update to all connected WebSocket clients
|
||||
wss.clients.forEach(client => {
|
||||
if (client.readyState === WebSocket.OPEN) {
|
||||
client.send(JSON.stringify({ type: 'counter-update', value: counter }));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// WebSocket connection handling
|
||||
wss.on('connection', (ws) => {
|
||||
console.log('Client connected');
|
||||
|
||||
ws.on('message', (message) => {
|
||||
console.log('Received:', Buffer.from(message).toString());
|
||||
});
|
||||
|
||||
ws.on('error', (error) => {
|
||||
console.log('WebSocket error:', error);
|
||||
});
|
||||
|
||||
ws.on('close', (code, reason) => {
|
||||
console.log('Client disconnected', 'Code:', code, 'Reason:', reason.toString());
|
||||
});
|
||||
});
|
||||
|
||||
const PORT = 3001; // API and WebSocket server port
|
||||
server.listen(PORT, '127.0.0.1', () => {
|
||||
console.log(`Server running on http://127.0.0.1:${PORT}`);
|
||||
});
|
||||
Reference in New Issue
Block a user