physical
TypeScript icon, indicating that this package has built-in type declarations

3.0.3 • Public • Published

Physical Connection Interface

https://www.npmjs.com/package/physical

Physical is an interface for a cross environment, cross system connection protocol that enables a democratization of internet resources by closing the gap between servers and clients in the connectivity department

Ensures you can negotiate connections and send data.

Reference Implementations

Interoperability of known implementations

requester\responder physical-node physical-chrome
physical-node WebSocket P/C WebSocket P/C
physical-chrome WebSocket C/P WebRTC

Usage:

If you want to connect with another host, you must

  1. create a new Physical object
  2. call physical.request() to generate a serializable SYNQ object
  3. pass the SYNQ object to the other host
  4. wait for an ACK object, deserialize if necessary
  5. call physical.open(ack)
  6. wait for onOpen to fire.

If you want to let a host connect to you with a SYNQ object, you must

  1. create a new Physical object
  2. call physical.respond(synq) to generate a serializable ACK object
  3. pass the ACK object to the other host
  4. wait for onOpen to fire.

Methods:

request() : Promise<SYNQ>

generate a SYNQ request

SYNQ must contain a list of protocol names in SYNQ.supported, and the protocol offers in SYNQ.body in the same order.

respond(synq : SYNQ) : Promise<ACK>

respond to a SYNQ request

ACK must choose one compatible protocol and return a compliant response

open(ack : ACK) : void

unlock and open a physical connection

can only be called if request() has been called.

setOnOpen(f : ()=>void) : void

register a function to be called when the connection opens

send(message : string) : void

dispatch a message to the other host. throws exception if if the connection is not open

setOnMessage(f : (message : string) => void) : void

register a function to be called when a message comes through the connection this can be called multiple times if needed to update the onMessage function.

undefined behavior if not set.

close() : void

close the connection from your end

setOnClose(f : ()=>void) : void

register a function to be called when the connection closes

Package Sidebar

Install

npm i physical

Weekly Downloads

7

Version

3.0.3

License

UNLICENSED

Unpacked Size

6.05 kB

Total Files

23

Last publish

Collaborators

  • emdiet