Updates
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
require('bare-process/global')
|
||||
const { RPCServer, RPCClient } = require('../index.js')
|
||||
const SecretStream = require('@hyperswarm/secret-stream')
|
||||
const { pairSecretStreams, waitSecretStreamsConnected } = require('../lib/pair.js')
|
||||
|
||||
async function demo () {
|
||||
console.log('=== hyper-p2p-rpc Basic Demo (SecretStream) ===')
|
||||
|
||||
const a = new SecretStream(true)
|
||||
const b = new SecretStream(false)
|
||||
|
||||
const server = new RPCServer()
|
||||
server.register('add', async (params) => ({ result: (params.a || 0) + (params.b || 0) }))
|
||||
server.register('greet', async (params) => ({ message: `Hello, ${params.name || 'stranger'}!` }))
|
||||
|
||||
server.handleConnection(a)
|
||||
const client = new RPCClient(b)
|
||||
|
||||
pairSecretStreams(a, b)
|
||||
await waitSecretStreamsConnected(a, b)
|
||||
|
||||
const sum = await client.call('add', { a: 42, b: 58 })
|
||||
console.log('42 + 58 =', sum.result)
|
||||
|
||||
const greeting = await client.call('greet', { name: 'Pear Developer' })
|
||||
console.log(greeting.message)
|
||||
|
||||
server.close()
|
||||
a.destroy()
|
||||
b.destroy()
|
||||
console.log('Demo complete.')
|
||||
}
|
||||
|
||||
demo().catch((err) => {
|
||||
console.error(err)
|
||||
process.exit(1)
|
||||
})
|
||||
@@ -0,0 +1,38 @@
|
||||
require('bare-process/global')
|
||||
const { RPCServer, RPCClient } = require('../index.js')
|
||||
const SecretStream = require('@hyperswarm/secret-stream')
|
||||
const { pairSecretStreams, waitSecretStreamsConnected } = require('../lib/pair.js')
|
||||
|
||||
async function streamingDemo () {
|
||||
console.log('=== hyper-p2p-rpc Streaming Demo (SecretStream) ===')
|
||||
|
||||
const a = new SecretStream(true)
|
||||
const b = new SecretStream(false)
|
||||
|
||||
const server = new RPCServer()
|
||||
server.register('count-stream', async function * (params) {
|
||||
const max = params.max || 5
|
||||
for (let i = 0; i < max; i++) {
|
||||
yield { seq: i, value: i * i }
|
||||
await new Promise((r) => setTimeout(r, 100))
|
||||
}
|
||||
})
|
||||
|
||||
server.handleConnection(a)
|
||||
const client = new RPCClient(b)
|
||||
|
||||
pairSecretStreams(a, b)
|
||||
await waitSecretStreamsConnected(a, b)
|
||||
|
||||
const stream = await client.callStream('count-stream', { max: 4 })
|
||||
for await (const chunk of stream) {
|
||||
console.log('chunk:', chunk)
|
||||
}
|
||||
|
||||
server.close()
|
||||
a.destroy()
|
||||
b.destroy()
|
||||
console.log('Streaming demo complete.')
|
||||
}
|
||||
|
||||
streamingDemo().catch(console.error)
|
||||
Reference in New Issue
Block a user