Javascript 如何动态注册RPC提供程序?

Javascript 如何动态注册RPC提供程序?,javascript,rpc,provider,subscriber,deepstream.io,Javascript,Rpc,Provider,Subscriber,Deepstream.io,我想知道如何进行动态RPC调用? 例如,当订户调用url时,这里123可以是任何内容。那么,如何注册提供程序方法呢 例如: client.rpc.make(,{patientId:2},(错误,结果)=>{ console.log(错误、结果); }) 关于提供商: client.rpc.provide(<MY-DYNAMIC-URL>, (data, response) => { response.send('Hey there!'); }) client

我想知道如何进行动态RPC调用? 例如,当订户调用url时,这里123可以是任何内容。那么,如何注册提供程序方法呢

例如:

client.rpc.make(,{patientId:2},(错误,结果)=>{
console.log(错误、结果);
})
关于提供商:

client.rpc.provide(<MY-DYNAMIC-URL>, (data, response) => {
    response.send('Hey there!');    
})
client.rpc.provide(,(数据,响应)=>{
回复。发送('Hey there!');
})

如何实现这一点?

您可以实现如下动态URL:

1)server.js(用于NodeJS)

现在转到

localhost:port/randomURL
const ds = deepstream('<URL>');
const randomURL = Math.ceil(Math.random() * 10000).toString();
ds.rpc.provide(randomURL, (data, response) => {
  console.log("received request for: ", randomURL, data);
  response.send(`${Date.now()} Hello from random Service: ${randomURL}`);
})
module.exports = async (req, res) => {
  let fullPath = req.url;
  fullPath = fullPath.split('/')[1];
  const result = await ds.rpc.make(fullPath, {}, (err, result) => {
    console.log("response received: ", err, result);
    res.end(result);
  });
  console.log(`result for ${fullPath} is: ${result}`);
}
localhost:port/randomURL