@ai-lion/lion-peer

My webpack project

Usage no npm install needed!

<script type="module">
  import aiLionLionPeer from 'https://cdn.skypack.dev/@ai-lion/lion-peer';
</script>

README

基于 webcrt 的 p2p 实现方案, 基于 typescrit 编程, 可使用在浏览器和 nodejs (node 环境需要安装 webcrt 插件)

使用

let hash = location.hash.replace(/^#/, "");
let peerId = "aabbccdd-xx";
if (hash == "init") {
    let peer = new Peer(peerId);
    //## 绑定路油事件 get
    peer.use("getRouter", async (data, socket) => {
        console.info("getRouter", data);
        //获取远程节点getName数据
        let res0 = await socket.request("getName", { name: "server request client", msg: "gogo" });
        console.info("res getName", res0);
        return { code: 200, data: { name: "senver replay client", msg: Date.now() } };
    });
} else {
    let peer = new Peer();
    peer.on("open", async (pid) => {//节点已经打开成功
        console.info("open===", pid);
        let socket = peer.connect(peerId);//连接目标节点的id

        //## 绑定路油事件 get
        socket.use("getName", (data) => { //
            console.info("getName", data);
            return { code: 200, data: { name: "client replay server", msg: Date.now() } };
        });
        let res = await socket.request("getRouter", { name: "lili", msg: "client req server" });
        console.info("===============res getRouter", res);
    });
}