0.0.0 • Published 2 years ago

socketzz v0.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

socketzz

WebSocket with decorators and Typescript

Install

$ yarn add @socketzz/server # for server
$ yarn add @socketzz/client # for client

Server example

import {
    SocketServer,
    SocketClient,
    Socket,
    Controller,
    OnConnection,
    Event,
    Message
} from '@socketzz/server'

@Controller('app')
class AppController {
    @OnConnection()
    public onConnection (socket: SocketClient) {
        socket.send({
            event: 'hello',
            message: {
                foo: 'bar'
            }
        });
    }

    @Event('greeting')
    public greeting (
        @Message() msg: { greeting: string },
        @Socket() socket: SocketClient
    ) {
        console.log(msg);
        socket.close();
    }
}

const server = new SocketServer({
    controllers: [AppController]
});

server.listen({ port: 3000 });

Client example

import {
    SocketClient,
    Controller,
    Event,
    OnOpen,
    Socket,
    Message,
    SocketInstance
} from '@socketzz/client';

@Controller('app')
class AppController {
    @OnOpen()
    public onOpen () {
        console.log('connection opened');
    }

    @Event('hello')
    public hello (
        @Socket() socket: SocketInstance,
        @Message() { foo }: { foo: string }
    ) {
        console.log(`foo:`, foo);
        socket.send({
            namespace: 'app', // optional
            event: 'greeting',
            message: {
                greeting: `hello, ${foo}!`
            }
        })
    }
}

const client = new SocketClient({
    controllers: [AppController]
});

client.connect({
    url: 'ws://localhost:3000'
})

License

See LICENSE

0.0.0

2 years ago