Compare commits

...

2 Commits

3 changed files with 15 additions and 4 deletions

View File

@ -7,16 +7,24 @@ import { errorExit } from "../lib/error.js";
import stringify from "json-stable-stringify";
import {
getRpcServer,
RPC_PROTOCOL_ID,
RPC_PROTOCOL_SYMBOL,
setupStream,
} from "./rpc/server.js";
import { get as getSwarm, SecretStream } from "./swarm.js";
import b4a from "b4a";
// @ts-ignore
import Protomux from "protomux";
export async function start() {
getSwarm().on("connection", (stream: SecretStream) =>
getRpcServer().setup(stream)
getSwarm().on("connection", (stream: SecretStream) => {
Protomux.from(stream).pair(
{ protocol: "protomux-rpc", id: RPC_PROTOCOL_ID },
async () => {
getRpcServer().setup(stream);
}
);
});
}
export async function getRpcByPeer(peer: Buffer | string) {

View File

@ -23,7 +23,7 @@ import config from "../../config";
const sodium = require("sodium-universal");
let server: RPCServer;
const RPC_PROTOCOL_ID = b4a.from("lumeweb");
export const RPC_PROTOCOL_ID = b4a.from("lumeweb");
export const RPC_PROTOCOL_SYMBOL = Symbol.for(RPC_PROTOCOL_ID.toString());
export function getRpcServer(): RPCServer {

View File

@ -69,6 +69,9 @@ export class ProtocolManager {
this._swarm = swarm;
this._swarm.on("connection", (peer: any) => {
if (!peer.userData) {
peer.userData = null;
}
for (const protocol of this._protocols) {
Protomux.from(peer).pair(
{ protocol: protocol[0] },