The backend for @yomo/presencejs ⚡️ made realtime web applications edge-aware by YoMo

yomo-presence-backend

The backend for @yomo/presencejs

🔨 Dev on local

0. Prerequisites

Install Go

1. Install YoMo CLI

$ go install github.com/yomorun/cli/yomo@latest

See YoMo CLI for details.

2. Start YoMo Zipper

$ yomo serve -c ./example/single-node/workflow.yaml
2022-01-13 16:44:28.015 [yomo:zipper] Listening SIGTERM/SIGINT...
2022-01-13 16:44:28.027 [core:server] ✅ [YoMoZipper] Listening on: [::]:9000, QUIC: [v1 draft-29], AUTH: [None]

3. Start Presence Websocket Server

$ PRESENCE_SENDER=localhost:9000 PRESENCE_RECEIVER=localhost:9000 go run ./cmd/main.go
2022/01/13 16:45:08 Starting websocket server 0.0.0.0:7000...
------------Receiver init------------ zipper=localhost:9000
2022/01/13 16:45:08 [core:client]  has connected to yomo-source (localhost:9000)
[source] ✅ Connect to YoMo-Zipper
2022/01/13 16:45:08 [core:client]  has connected to PresenceHandler (localhost:9000)

4. Run the Cursor Chat example in local

Checkout yomo-react-cursor-chat-example and change the socketURL to ws://localhost:7000.

Then run the example:

$ npm run dev

Deployment

1. Install YoMo CLI Binary on server.

$ curl -fsSL "https://bina.egoist.sh/yomorun/cli?name=yomo" | sh

2. Start the Presence Receiver&Sender servers

2.1 Upload the config files to server

The following steps are based on Ubuntu for instance.

Upload the folders example/mesh-nodes and deploy/systemd to your server.

2.2 Start Presence-Reciever Server

$ sudo systemctl enable /home/ubuntu/presence-backend/systemd/presence-receiver.service
$ sudo systemctl start presence-receiver.service

2.3 Start Presence-Sender Server

Note: you have to upload the Mesh config file to your webserver (or S3), see deploy/dev.json for example.

$ sudo systemctl enable /home/ubuntu/presence-backend/systemd/presence-sender.service
$ sudo systemctl start presence-sender.service

3. Start the Presence WebSocket Server

3.1 Build the presenced binary and upload it to your server

$ make build-linux

3.2 Start Presence-WebSocket Server

$ sudo systemctl enable /home/ubuntu/presence-backend/systemd/presenced.service
$ sudo systemctl start presenced.service
Owner
YoMo
Geo-distributed system Framework
YoMo
Comments
A small and basic service to echo requests made via websockets

Ping Service A small and basic service to echo requests made via websockets, can be useful for measuring latency between clients and this service. Run

Nov 18, 2021
This application shows how to use the websocket package to implement a simple web chat application.

Chat Example This application shows how to use the websocket package to implement a simple web chat application. Running the example The example requi

Nov 14, 2021
Websockets - Chaotic Web Sockets With Golang

Chaotic Web Sockets The intention of this project is to show the behavior of a s

Jan 21, 2022
Go-distributed-websocket - Distributed Web Socket with Golang and Redis
Go-distributed-websocket - Distributed Web Socket with Golang and Redis

go-distributed-websocket Distributed Web Socket with Golang and Redis Dependenci

Oct 13, 2022
An edge-native container management system for edge computing
An edge-native container management system for edge computing

SuperEdge is an open source container management system for edge computing to manage compute resources and container applications in multiple edge regions. These resources and applications, in the current approach, are managed as one single Kubernetes cluster. A native Kubernetes cluster can be easily converted to a SuperEdge cluster.

Dec 29, 2022
Provide cloud-edge message synergy solutions for companies and individuals.the cloud-edge message system based on NATS.

Swarm This project is a cloud-edge synergy solution based on NATS. quikly deploy cloud deploy on k8s #pull the project. git clone https://github.com/g

Jan 11, 2022
Nov 9, 2022
☔🎀 Translation made with simplicity, yet robust. ~ Backend portion of Arisu, made in Go.

☔ Tsubaki Website • Discord • Discussions Translation made with simplicity, yet robust. Made with ?? using TypeScript, React with Next.js. Tsubaki is

Jan 13, 2022
Graphik is a Backend as a Service implemented as an identity-aware document & graph database with support for gRPC and graphQL
Graphik is a Backend as a Service implemented as an identity-aware document & graph database with support for gRPC and graphQL

Graphik is a Backend as a Service implemented as an identity-aware, permissioned, persistant document/graph database & pubsub server written in Go.

Dec 30, 2022
xlog is a logger for net/context aware HTTP applications
xlog is a logger for net/context aware HTTP applications

⚠️ Check zerolog, the successor of xlog. HTTP Handler Logger xlog is a logger for net/context aware HTTP applications. Unlike most loggers, xlog will

Sep 26, 2022
Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.

Consul Website: https://www.consul.io Tutorials: HashiCorp Learn Forum: Discuss Consul is a distributed, highly available, and data center aware solut

Jan 2, 2023
🌐 (Web 3.0) Pastebin built on IPFS, securely served by Distributed Web and Edge Network.
🌐 (Web 3.0) Pastebin built on IPFS, securely served by Distributed Web and Edge Network.

pastebin-ipfs 简体中文 (IPFS Archivists) Still in development, Pull Requests are welcomed. Pastebin built on IPFS, securely served by Distributed Web and

Jan 1, 2023
Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.

Dapr is a portable, serverless, event-driven runtime that makes it easy for developers to build resilient, stateless and stateful microservices that run on the cloud and edge and embraces the diversity of languages and developer frameworks.

Jan 5, 2023
🦖 Streaming-Serverless Framework for Low-latency Edge Computing applications, running atop QUIC protocol, engaging 5G technology.
🦖 Streaming-Serverless Framework for Low-latency Edge Computing applications, running atop QUIC protocol, engaging 5G technology.

YoMo YoMo is an open-source Streaming Serverless Framework for building Low-latency Edge Computing applications. Built atop QUIC Transport Protocol an

Dec 29, 2022
Simplified network and services for edge applications
Simplified network and services for edge applications

English | 简体中文 EdgeMesh Introduction EdgeMesh is a part of KubeEdge, and provides a simple network solution for the inter-communications between servi

Jan 1, 2023
A game server side framework with both web API and realtime communication.

HAYABUSA Framework Hayabusa is a server side framework for Japan-like social games. Easy to understand and use for beginners Powerful controller, flex

May 21, 2022
Broilerplate - A template project for new Go web backend applications
Broilerplate - A template project for new Go web backend applications

Broilerplate A template project for new Go web backend applications. Can be used

Mar 28, 2022
A fast data generator that's multi-table aware and supports multi-row DML.
A fast data generator that's multi-table aware and supports multi-row DML.

If you need to generate a lot of random data for your database tables but don't want to spend hours configuring a custom tool for the job, then datage

Dec 26, 2022
gpool - a generic context-aware resizable goroutines pool to bound concurrency based on semaphore.

gpool - a generic context-aware resizable goroutines pool to bound concurrency. Installation $ go get github.com/sherifabdlnaby/gpool import "github.c

Oct 31, 2022
xmux is a httprouter fork on top of xhandler (net/context aware)

Xmux Xmux is a lightweight high performance HTTP request muxer on top xhandler. Xmux gets its speed from the fork of the amazing httprouter. Route par

Sep 28, 2022