1.4.1 • Published 3 years ago

viae v1.4.1

Weekly downloads
101
License
MIT
Repository
github
Last release
3 years ago

Viae

A bi-directional communication framework.

logopng

NPM version NPM downloads Travis Status codecov Stability

:warning: Currently still under development. :warning:

The goal in developing viae was to allow making asynchronous req/res on a single websocket connection and to allow sending objects containing TypedArrayView instances. It evolved to facilitate sending and receiving rxjs Observables (stream request, stream response);

Basic Usage

A server is created by instantiating a Viae instance and passing a WebSocketServer (or an alterative IWireServer), instance to it:

let server = new WebSocketServer({ port: 8080, host: "0.0.0.0" });
let viae = new Viae(server);

request middleware can then be added using:

viae.use(async (ctx, next) => {
  //do something with ctx
  return next();
});

A controller-based router is available by using

@Controller('chat')
class ChatRoomController {
  private _channel = new Subject<string>();

  @Get()
  join() {
    return this._channel;
  }

  @Post()
  addMsg(@Data() msg: string){
    this._channel.next(msg);
    return Status.OK;        
  }
}

viae.use(new App({
  controllers: [new ChatRoomController()]
}));

a client is created by instantiating a Via instance with a wire and making requests

let wire = new WebSocket("ws://0.0.0.0:8080");
let via = new Via({ wire });

via.on("open", async () => {

  let data = await via.call("GET", "/chat");

  data.forEach(x => console.log(x));
  
  await via.call("POST", "/chat", "hello world...");

  await new Promise((r, _) => setTimeout(r, 100));

  wire.close();
});

Build

npm install
npm test

Credits

"Cross" Icon courtesy of The Noun Project, by Alexander Skowalsky, under CC 3.0

1.4.1

3 years ago

1.4.0

4 years ago

1.3.2

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

1.0.0-rc.10

5 years ago

1.0.0-rc.9

5 years ago

1.0.0-rc.8

5 years ago

1.0.0-rc.7

5 years ago

1.0.0-rc.6

5 years ago

1.0.0-rc.5

5 years ago

1.0.0-rc.4

5 years ago

1.0.0-rc.3

5 years ago

1.0.0-rc.2

5 years ago

1.0.0-rc.1

5 years ago

1.0.0-alpha.7

5 years ago

1.0.0-alpha.6

5 years ago

1.0.0-alpha.4

5 years ago

1.0.0-alpha.3

5 years ago

1.0.0-alpha.2

5 years ago

1.0.0-alpha.1

5 years ago

1.0.0-beta.1

6 years ago

0.6.4

6 years ago

0.6.3

6 years ago

0.6.2

7 years ago

0.6.1

7 years ago

0.6.0

7 years ago

0.6.0-beta.14

7 years ago

0.6.0-beta.13

7 years ago

0.6.0-beta.12

7 years ago

0.6.0-beta.11

7 years ago

0.6.0-beta.10

7 years ago

0.6.0-beta.9

7 years ago

0.6.0-beta.8

7 years ago

0.6.0-beta.7

7 years ago

0.6.0-beta.6

7 years ago

0.6.0-beta.5

7 years ago

0.6.0-beta.3

7 years ago

0.6.0-beta.2

7 years ago

0.6.0-beta.1

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.4

7 years ago

0.4.3

7 years ago

0.4.2

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.10

7 years ago

0.3.9

7 years ago

0.3.8

7 years ago

0.3.7

7 years ago

0.3.6

7 years ago

0.3.5

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.15

7 years ago

0.1.14

7 years ago

0.1.13

7 years ago

0.1.12

7 years ago

0.1.11

7 years ago

0.1.10

7 years ago

0.1.9

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago