0.4.0 • Published 29 days ago
websocket-rpc-protocol v0.4.0
Websocket-RPC-Protocol
Client and server libraries for handling RPC calls between the browser and a Cloudflare websocket interface. The client library will automatically try to reconnect after being disconnected from the server. For details on the protocol see PROTOCOL.md.
Installation
npm install websocket-rpc-protocol
Server Usage
import server from 'websocket-rpc-protocol/server';
createServer(websocket, ({ push }) => {
// Any state that could be built up over type during the connection of this single client (user id, etc)
let userState = {};
// Add any functions you want, only those returned will be public
function privateFunction() {
// do something not exposed to the client
}
// Define functions which will be exposed for calling by the client
function sayHi(name?: string) {
return `Hello ${name || 'world'}!`;
}
// return the public API
return {
sayHi,
namespace: {
sayBye(name?: string) {
return `Goodbye cruel ${name || 'world'}!`;
}
}
};
});
Client Usage
import createClient from 'websocket-rpc-protocol/client';
interface API {
sayHi(name?: string): Promise<string>;
}
const client = createClient<API>('wss://url-to-server');
// Call the method directly, TypeScript will support it and the method will be proxied using the send() method
await client.sayHi(); // Hello world!
await client.sayHi('everyone'); // Hello everyone!
await client.namespace.sayBye(); // Goodbye cruel world!
console.log(client.get());
/*
Outputs:
{
online: true, // Whether the browser's APIs think the browser is online
connected: true, // Whether the websocket is connected
authed: true, // If the connection has been successfully authenticated with a JWT
serverTimeOffset: 20, // The offset in milliseconds between the client and the server
}
*/
0.4.0
29 days ago
0.3.5
3 months ago
0.3.4
3 months ago
0.3.2
3 months ago
0.3.1
3 months ago
0.3.3
3 months ago
0.3.0
3 months ago
0.2.1
4 months ago
0.2.0
4 months ago
0.2.3
4 months ago
0.2.2
4 months ago
0.1.17
4 months ago
0.1.14
10 months ago
0.1.15
10 months ago
0.1.16
10 months ago
0.1.13
2 years ago
0.1.12
2 years ago
0.1.11
2 years ago
0.1.10
2 years ago
0.1.9
2 years ago
0.1.8
2 years ago
0.1.7
2 years ago
0.1.6
2 years ago
0.1.5
2 years ago
0.1.4
2 years ago
0.1.3
2 years ago
0.1.2
2 years ago
0.1.1
2 years ago
0.1.0
2 years ago