@awesomeorganization/ws-handler

    1.0.2 • Public • Published

    ws-handler

    💥 [ESM] The WebSocket (ws) handler for Node.js according to rfc6455, draft-ietf-hybi-thewebsocketprotocol-08 and draft-ietf-hybi-thewebsocketprotocol-13


    npm npm npm npm npm npm


    Example

    Full example in /example folder.

    import { http } from '@awesomeorganization/servers'
    import { rewriteHandler } from '@awesomeorganization/rewrite-handler'
    import { staticHandler } from '@awesomeorganization/static-handler'
    import { wsHandler } from '@awesomeorganization/ws-handler'
    
    const example = async () => {
      const rewriteMiddleware = rewriteHandler({
        rules: [
          {
            pattern: '(.*)/$',
            replacement: '$1/index.html',
          },
        ],
      })
      const staticMiddleware = await staticHandler({
        directoryPath: './static',
      })
      const wsMidleware = await wsHandler()
      http({
        listenOptions: {
          host: '127.0.0.1',
          port: 3000,
        },
        onListening() {
          setInterval(() => {
            const timestamp = new Date().toISOString()
            wsMidleware.push({
              data: `${timestamp}: Hi!`,
            })
          }, 3e3)
        },
        onRequest(request, response) {
          switch (request.method) {
            case 'GET': {
              rewriteMiddleware.handle({
                request,
                response,
              })
              staticMiddleware.handle({
                request,
                response,
              })
              return
            }
          }
          response.end()
        },
        onUpgrade(request, socket, head) {
          wsMidleware.handle({
            head,
            request,
            socket,
          })
        },
      })
      // TRY
      // http://127.0.0.1:3000/
    }
    
    example()
    

    Install

    npm i @awesomeorganization/ws-handler

    DownloadsWeekly Downloads

    11

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    5.69 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar