New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

yomo.run/prscd

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yomo.run/prscd

  • v0.0.0-20231024131906-0a14279a28da
  • Go
  • Socket score

Version published
Created
Source


NPM version License

Cursor Chat Anywhere - Add Figma like cursor chat to your own products | Product Hunt

🧬 Introduction

Presencejs is a JavaScript library that enables the creation of real-time web applications with a secure, low-latency, and high-performance geo-distributed architecture.

Key Features:

  • Geo-distributed Architecture: Deploy your real-time backend close to users all over the world for better performance.
  • WebTransport Support: WebTransport is an new API that offers low-latency, bidirectional, client-server messaging.
  • Secure, low-latency, and high-performance: PresenceJS prioritizes security, speed, and performance for a seamless user experience.
  • Real-time and collaborative experience: With PresenceJS, components receive data flow in real time, ensuring fast and reactive UI by offering the flexibility to send either unreliable or reliable data
  • Easy to use: PresenceJS is simple to implement, making it an accessible solution for developers.
  • Free for self-managed hosting: PresenceJS is free to use for self-managed hosting, making it an affordable choice for projects of any size.

🌟 Showcase

These React Serverless Components are built with presencejs:

👯‍♀️ GroupHug

Live collaborator avatars for multiplayer web apps

image

🥷🏼 Quick Start

1. Add presencejs to your web app

Using npm

$ npm i --save @yomo/presence

Using yarn

$ yarn add @yomo/presence

Using pnpm

$ pnpm i @yomo/presence
Create a Presence instance
import createPresence from "@yomo/presence";

// create an instance.
const presencePromise = createPresence("https://prsc.yomo.dev", {
  publicKey: process.env.NEXT_PUBLIC_PRESENCE_PUBLIC_KEY,
  id,
  debug: true,
});

presencePromise.then((presence) => {
  console.log("Presence: ", presence);
});

// or
// (async () => {
//   const presence = await presencePromise;
// })()
Create Channel

add subscribe to peers online event:

const channel = presence.joinChannel('group-hug', myState);
// join multiple channels
// const channel2 = presence.joinChannel('live-cursor', myState);
// const channel3 = presence.joinChannel('cursor-chat', myState);

channel.subscribePeers((peers) => {
    peers.forEach((peer) => {
      console.log(peer + " is online")
    }
});
Broadcast messages to all peers in this channel
const cb = () => {
  const state = document.hidden ? "away" : "online";
  c.broadcast("hidden-state-change", { state });
};
document.addEventListener("visibilitychange", cb);
Subscribe messages from the other peers
const unsubscribe = channel.subscribe(
  "hidden-state-change",
  ({ payload, peerState }) => {
    console.log(`${peerState.id} change visibility to: ${payload}`);
  },
);

unsubscribe();

2. Start prscd backend service

see prscd

🤹🏻‍♀️ API

See docs: https://presence.js.org

👩🏼‍🔬 Development

  • frontend project: bun install
  • packages/presence: bun run build
  • packages/group-hug-react: bun run build:js
  • local backend dev server: see prscd

🏡 Self-managed hosting

Docs: https://presence.js.org

License

The MIT License.

FAQs

Package last updated on 24 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc