start playing with websockets
This commit is contained in:
43
src/server/file.ts
Normal file
43
src/server/file.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
// Import the framework and instantiate it
|
||||
import Fastify from 'fastify'
|
||||
import {fastifyWebsocket} from '@fastify/websocket';
|
||||
|
||||
const server = Fastify({
|
||||
logger: true
|
||||
});
|
||||
|
||||
server.register(fastifyWebsocket);
|
||||
|
||||
server.get("/api/ws/room", { websocket: true }, function wsHandler (socket) {
|
||||
console.log("Client connected!");
|
||||
|
||||
console.log(socket);
|
||||
|
||||
socket.on('upgrade', () => {
|
||||
console.log('upgraded');
|
||||
});
|
||||
|
||||
socket.on('message', message => {
|
||||
console.log('Message from server:', message);
|
||||
socket.send(`Echo: ${message}`);
|
||||
});
|
||||
|
||||
socket.on('close', () => {
|
||||
console.log('WebSocket connection closed');
|
||||
});
|
||||
|
||||
socket.on('error', error => {
|
||||
console.error('WebSocket error:', error);
|
||||
});
|
||||
});
|
||||
|
||||
// Run the server!
|
||||
try {
|
||||
// Note: host needs to be 0.0.0.0 rather than omitted or localhost, otherwise
|
||||
// it always returns an empty reply when used inside docker...
|
||||
// See: https://github.com/fastify/fastify/issues/935
|
||||
await server.listen({ port: parseInt(process.env["PORT"] ?? "3000"), host: "0.0.0.0" })
|
||||
} catch (err) {
|
||||
server.log.error(err)
|
||||
process.exit(1)
|
||||
}
|
||||
Reference in New Issue
Block a user