imjoy-rpc v0.5.59
ImJoy RPC
Usage
Load the library to the browser
<script
type="text/javascript"
onload="imjoyRPC.setupRPC()"
src="https://cdn.jsdelivr.net/npm/imjoy-rpc@0.3.35/dist/imjoy-rpc.min.js"
></script>Or, you can use the npm module:
npm install imjoy-rpcimport { imjoyRPC } from 'imjoy-rpc';
imjoyRPC.setupRPC({name: 'My Awesome App'}).then(api => {
})imjoyRPC.waitForInitialization
This function is used to setup a base frame for running plugins.
It will send imjoyRPCReady signal to the imjoy-core and listen for the initialize signal.
Once received, it will call setupRPC with the config from the imjoy-core:
<script
type="text/javascript"
onload="imjoyRPC.waitForInitialization()"
src="https://cdn.jsdelivr.net/npm/imjoy-rpc@0.3.35/dist/imjoy-rpc.min.js"
></script>If needed, the authentication will also be done in this step (see config below).
config
You can optionally pass a config object into the function imjoyRPC.waitForInitialization(config)
config.credential_required:boolean, whether your RPC app requires credentialsconfig.credential_fields:array(ofobject), what are the fields required for the credentials, the properties of the objects will be used to generate HTML<input>field, it should containlabel,id,value(the default value),type(any type supported by<input>, e.g.:text,number,password). For example:[{id: 'username', label: 'User Name', value: '', type: 'text'}, {id: 'password', label: 'Password', value: '', type: 'password'}].config.verify_credential:function, a function to check if the submitted credential is validconfig.target_origin:string, the target origin required to connect to the RPC app, it's mandatory to set an explicit origin.
imjoyRPC.setupRPC
Setup ImJoy RPC manually:
imjoyRPC.setupRPC({name: 'My Awesome App'}).then((api)=>{
// use the api object to interact with imjoy-core
})Configuration for setupRPC
name Name of your app
Required
description Short description of your app
Default:
[TODO: add description for YOUR APP]version Version of your app
Default:
"0.1.0"allow_execution Allow code execution
Default:
falsetarget_origin Set the target origin for postMessage
Default:
*enable_service_worker Enable service worker for cachine requirements
Default:
falsecache_requirements A callback function for caching requirements in the service worker
Default:
nullforwarding_functions A list of function names which will be exported automatically and forwarded to the remote api. Default:
["close", "on", "off", "emit"]for all plugins, window plugins will include additional ones:["resize", "show", "hide", "refresh"]
Connect to Hypha
import { hyphaWebsocketClient } from "imjoy-rpc";
hyphaWebsocketClient.connectToServer({
server_url: 'https://ai.imjoy.io',
}).then(async (api)=>{
await api.register_service(
{
"id": "echo-service",
"config":{
"visibility": "public"
},
"type": "echo",
echo( data ){
console.log("Echo: ", data)
return data
}
}
)
})1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago