JavaScript socket-io

Open-source JavaScript projects categorized as socket-io

Top 23 JavaScript socket-io Projects

  • uptime-kuma

    A fancy self-hosted monitoring tool

    Project mention: What are your top five best self-hosted apps? | reddit.com/r/selfhosted | 2023-02-04

    UptimeKuma

  • js-stack-from-scratch

    🛠️⚡ Step-by-step tutorial to build a modern JavaScript stack.

    Project mention: Awesome Github Repos to Master JAVASCRIPT | dev.to | 2023-02-03

    😎 You jumped to React before JS, but you are missing pure JS. Here's a boost to help you complete yourself -> js-stack-from-scratch

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • nodeBB

    Node.js based forum software built for the modern web

    Project mention: The over-reliance on Discord is doing more harm than good. | reddit.com/r/truegaming | 2022-11-23

    If you want to make your own app out of custom code that you will actively develop new features for, I think your points are true. But if you just wanted a modern version of the old phpBB forums, there are plenty of almost-turnkey projects/templates you can use. Check out NodeBB for instance. Maybe the barrier for entry is higher in a way, given increased complexity, but you also get more and nicer features "for free". I think it's a wash.

  • Laverna

    Laverna is a JavaScript note taking application with Markdown editor and encryption support. Consider it like open source alternative to Evernote.

    Project mention: GitNoter alternatives - Laverna, Standard Notes, takenote, gitnote, and OpenNote | libhunt.com/r/gitnoter | 2022-04-25
  • mirotalksfu

    🏆 WebRTC - SFU - Simple, Secure, Scalable Real-Time Video Conferences Up to 4k, compatible with all browsers and platforms.

    Project mention: Free Secure WebRTC P2P/SFU/C2C Video Calls, Screen Sharing, File Sharing, Chat and more. | reddit.com/r/javascript | 2023-02-02

    I started the MiroTalk P2P & MiroTalk SFU projects during the pandemic period (about 1+ year ago), not knowing anything about the WebRTC. Making often the video conferences with my colleagues and not wanting to depend on Zoom, Teams, Google Meet... I decided to do some research about how it works and from there MiroTalk was born :) I Giving to everyone the chance to have its own instance of MiroTalk, which can be customized as you like and run in any cloud, vps, server. If you're just starting out, I suggest you take a look at the MiroTalk C2C (New) code, which can be a good starting point to understand how the architecture WebRTC Mesh (P2P) works. Later you can also study how the WebRTC SFU (Selective Forwarding Units - I recommend mediasoup which I personally love) or MCU (Multipoint Control Unit) architecture works. I wish you all the best!

  • Vynchronize

    Watch videos with friends online with the new real time video synchronization platform

  • Darkwire.io

    End-to-end encrypted instant web chat

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • vue-socket.io-extended

    :v::zap: Socket.io bindings for Vue.js and Vuex (inspired by Vue-Socket.io)

  • social-network

    Mini social network that I made as my first web app project.

    Project mention: Mini social network that I made as my first web app project. | dev.to | 2022-02-10

    link to repository

  • WebRTC-Video-Broadcast

    WebRTC video/audio broadcast

    Project mention: Implementing rooms in One to Many streaming | reddit.com/r/webdev | 2022-06-13

    I have created a one to many broadcasting app using this code as reference . Is there any way to create rooms in this using uuid or something, like if someone broadcasts, they get a unique id which will be used by clients to view?

  • vue-chess

    Multiplayer online chess game use Vue , Nodejs, Webpack, Em6, Socket.io, Mongodb, Express

  • instagram-mern

    Full-Stack Instgram Clone using MERN Stack and Socket.io

    Project mention: Full-Stack Instgram Clone Using MERN Stack and Socket.io | news.ycombinator.com | 2022-03-30
  • Video-Chat

    Video calling and chatting app (PWA) built using React.js, Web RTC and Socket.io

  • local-party

    A website where you can create rooms and chat while watching local video files synchronized with your friends.

  • Whisper

    A Fun Application to have a random chat with people safely (by Dun-sin)

    Project mention: I created an open source project that allows users to chat anonymously, but I'm having issues pairing two users together randomly. any help is appreciated. Technologies used: React, Redux, Tailwind, Nodejs, Express, Socketio | reddit.com/r/coolgithubprojects | 2022-08-04
  • stream-live-system

    :red_circle: An example of a live broadcast system using microservice concepts and architected with docker.

  • FileDrop

    Grade: 89%. COMP3006 coursework. An encrypted file sharing application that leverages web sockets to allow users to send and receive files.

    Project mention: Looking for simple, secure, file sharing | reddit.com/r/selfhosted | 2022-05-20
  • TikTok-Chat-Reader

    Website to display chats and gifts in realtime from your TikTok LIVE stream. Demo project for TikTok-Live-Connector library.

    Project mention: How to connect the comments to the words of the game? | reddit.com/r/Tiktokhelp | 2022-04-12

    ​ ​ !< !< ​ !< Level: 1 Score: 0 Attempts: 0 ​ ​ Submit Reset Chats ​ !< ​ >! !< >!!< ​ ​ script.js const userGuess = document.getElementById("user-guess"); const submitBtn = document.getElementById("submit"); const usersWord = document.getElementById("scrambled-word"); const info = document.getElementById("info"); const levelOutput = document.getElementById("level"); const scoreOutput = document.getElementById("score"); const attemptsOutput = document.getElementById("attempts"); const gameContainer = document.getElementById("game-container"); const guessContainer = document.getElementById("guess-container"); const resetBtn = document.getElementById("reset-btn"); ​ ​ ​ let level = 1; let score = 0; let word; let attempts = 0; let correct = 0; ​ const lvlOneWords = [ >! "test"!< ]; ​ const lvlTwoWords = [ >! "test"!< ]; ​ const lvlThreeWords = [ >! "test"!< ]; ​ const lvlFourWords = [ >! "test"!< ]; ​ const lvlFiveWords = [ >! "test"!< ]; ​ const lvlSixWords = [ >! "test"!< ]; ​ const lvlSevenWords = [ >! "test"!< ]; ​ const lvlEightWords = [ >! "test"!< ]; ​ function reset() { >! level = 1;!< >! score = 0;!< >! correct = 0;!< >! attempts = 0;!< >! word = "";!< >! updateBoard();!< >! info.innerHTML = "";!< >! userGuess.value = "";!< } ​ function randomWord(lvl) { >! word = lvl[Math.floor(Math.random() * lvl.length + 1) - 1];!< >! return word;!< } ​ function scrambleWord(word) { >! let letters = word.split("");!< >! let currentIndex = letters.length,!< temporaryValue, randomIndex; ​ >! // While there remain elements to shuffle...!< >! while (0 !== currentIndex) {!< // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; ​ // And swap it with the current element. temporaryValue = letters[currentIndex]; letters[currentIndex] = letters[randomIndex]; letters[randomIndex] = temporaryValue; >! }!< ​ >! return letters.join(" ");!< } function updateBoard() { >! scoreOutput.innerHTML = score;!< >! levelOutput.innerHTML = level;!< >! attemptsOutput.innerHTML = attempts;!< } ​ function checkAnswer(guess) { >! console.log(`Correct: ${correct}`);!< >! if (correct == 3) {!< level += 1; correct = 0; >! }!< ​ >! if (attempts == 3) {!< guessContainer.classList.toggle("hidden"); info.innerHTML = "Sorry. You are out of chances. Retry ";!< reset(); >! }!< ​ >! if (guess === word) {!< info.innerHTML = "aCORRECT";!< score += 1; correct += 1; attempts = 0; setLevel(); >! } else {!< info.innerHTML = "Bzzzt! That's not right!";!< score -= 1; attempts += 1; >! }!< ​ >! updateBoard();!< } ​ function setLevel() { >! if (level == 1) {!< randomWord(lvlOneWords); >! } else if (level == 2) {!< randomWord(lvlTwoWords); >! } else if (level == 3) {!< randomWord(lvlThreeWords); >! } else if (level == 4) {!< randomWord(lvlFourWords); >! } else if (level == 5) {!< randomWord(lvlFiveWords); >! } else if (level == 6) {!< randomWord(lvlSixWords); >! } else if (level == 7) {!< randomWord(lvlSevenWords); >! } else if (level == 8) {!< randomWord(lvlEightWords); >! } else if (level == 9) {!< info.innerHTML = "You Win! Great job! You can reset or keep playing.";!< >! }!< ​ >! console.log(`Word: ${word}`);!< >! usersWord.innerHTML = scrambleWord(word);!< } ​ ​ ​ submitBtn.addEventListener("click", function(e) { >! checkAnswer(userGuess.value.toLowerCase());!< >! userGuess.value = "";!< }); ​ ​ ///////// ​ ///// ​ ​ window.addEventListener( >! "keypress",!< >! function(e) {!< if (e.keyCode == 13) { checkAnswer(userGuess.value.toLowerCase()); userGuess.value = ""; } >! },!< >! false!< ); ​ resetBtn.addEventListener("click", function(e) { >! reset();!< >! setLevel();!< >! guessContainer.classList.remove("hidden");!< >! userGuess.value = "";!< }); ​ setLevel(); ​ style.css /* http://meyerweb.com/eric/tools/css/reset/ >! v2.0 | 20110126!< >! License: none (public domain)!< */ /* line 6, ../sass/partials/_normalize.scss */ html1, body1, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { >! margin: 0;!< >! padding: 0;!< >! border: 0;!< >! font-size: 100%;!< >! font: inherit;!< >! vertical-align: baseline;!< } ​ /* HTML5 display-role reset for older browsers */ /* line 27, ../sass/partials/_normalize.scss */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { >! display: block;!< } ​ /* line 31, ../sass/partials/_normalize.scss */ body { >! line-height: 1;!< } ​ /* line 34, ../sass/partials/_normalize.scss */ ol, ul { >! list-style: none;!< } ​ /* line 37, ../sass/partials/_normalize.scss */ blockquote, q { >! quotes: none;!< } ​ /* line 40, ../sass/partials/_normalize.scss */ blockquote:before, blockquote:after, q:before, q:after { >! content: "";!< >! content: none;!< } ​ /* line 45, ../sass/partials/_normalize.scss */ table { >! border-collapse: collapse;!< >! border-spacing: 0;!< } ​ /* line 5, ../sass/styles.scss */ html, body { >! font-size: 16px;!< >! width: 50%;!< >! font-family: "Quicksand", sans-serif;!< >! overflow-x: hidden;!< >! overflow-y: hidden;!< } ​ /* line 13, ../sass/styles.scss */ nav { >! border-bottom: #e18a07 2px solid;!< >! width: 100%;!< >! padding: 0.625em;!< >! display: block;!< >! height: 2em;!< } ​ /* line 20, ../sass/styles.scss */ h1 { >! font-size: 2em;!< >! display: inline-block;!< >! float: left;!< >! padding-left: 1em;!< } ​ /* line 26, ../sass/styles.scss */ #contact { >! font-size: 2em;!< >! display: inline-block;!< >! float: right;!< >! padding-right: 1em;!< } ​ /* line 32, ../sass/styles.scss */ #contact a { >! color: #000;!< } ​ /* line 35, ../sass/styles.scss */ #contact i:hover { >! color: #e18a07;!< >! cursor: pointer;!< } ​ /* line 40, ../sass/styles.scss */ #rules { >! position: absolute;!< >! z-index: 999;!< >! width: 31.25em;!< >! height: 31.25em;!< >! text-align: center;!< >! left: 50%;!< >! margin-left: -200px;!< >! top: 50%;!< >! margin-top: -200px;!< } ​ /* line 51, ../sass/styles.scss */ #rules p { >! margin-bottom: 1.25em;!< } ​ /* line 55, ../sass/styles.scss */ #game-container { >! text-align: center;!< >! margin: 2em auto;!< >! width: 100vh;!< >! height: 80vh;!< } ​ /* line 62, ../sass/styles.scss */ #game-container p { >! display: inline-block;!< >! margin-right: 1em;!< >! margin-bottom: 3em;!< >! font-weight: 500;!< >! font-size: 1.5em;!< } ​ /* line 69, ../sass/styles.scss */ #game-container p span { >! font-weight: 300;!< } ​ /* line 72, ../sass/styles.scss */ #game-container p#info { >! display: block;!< >! text-align: center;!< >! font-size: 2em !important;!< >! height: 2em;!< >! margin-bottom: 1em;!< } ​ /* line 80, ../sass/styles.scss */ #scrambled-word { >! font-size: 3em !important;!< >! font-family: "Anton", sans-serif;!< >! text-transform: uppercase;!< >! display: block;!< >! margin-left: 48px;!< >! margin-bottom: 1em !important;!< } ​ /* line 89, ../sass/styles.scss */ #scrambled-word p { >! display: block;!< >! width: 100%;!< } ​ /* line 94, ../sass/styles.scss */ #user-guess { >! display: block;!< >! width: 20em;!< >! height: 3em;!< >! padding-left: 1em;!< >! margin: 0 auto 1.25em;!< >! border: 1px solid #000;!< >! outline-color: #e18a07;!< >! font-size: 1.1em;!< } ​ /* line 104, ../sass/styles.scss */ small { >! font-size: 0.8em;!< } ​ /* line 107, ../sass/styles.scss */ .lead { >! font-size: 1.2em;!< >! font-weight: 700;!< } ​ /* line 111, ../sass/styles.scss */ .correct, .incorrect { >! font-size: 1.5em;!< >! font-weight: 700;!< } ​ /* line 116, ../sass/styles.scss */ .correct { >! color: green;!< >! display: block;!< } ​ /* line 121, ../sass/styles.scss */ .incorrect { >! color: red;!< >! display: block;!< } ​ /* line 126, ../sass/styles.scss */ .hidden { >! visibility: hidden;!< } ​ /* line 129, ../sass/styles.scss */ button { >! cursor: pointer;!< >! width: 12em;!< >! height: 3em;!< >! outline: none;!< >! text-transform: uppercase;!< >! font-weight: 400;!< >! font-size: 1.1em;!< } ​ /* line 138, ../sass/styles.scss */ #submit { >! background: #fff;!< >! border: 2px solid #e18a07;!< } ​ /* line 143, ../sass/styles.scss */ #submit:hover { >! background: #e18a07;!< >! color: #fff;!< >! transition: 0.2s background;!< } ​ ​ /* line 138, ../sass/styles.scss */ ​ ​ /* line 150, ../sass/styles.scss */ #reset-btn { >! background: #fff;!< >! border: none;!< >! box-shadow: 1px 1px 1px #999;!< } ​ /* line 155, ../sass/styles.scss */ #reset-btn:hover { >! box-shadow: 1px 1px 1px #000;!< >! transition: 0.2s box-shadow;!< } ​ /* line 161, ../sass/styles.scss */ button:active { >! position: relative;!< >! top: 1px;!< } ​ /* line 166, ../sass/styles.scss */ #copyright { >! text-align: center;!< } ​ https://github.com/zerodytrash/TikTok-Chat-Reader API to retrieve chat comments

  • realtime-newsapi

    Financial News Aggregator - Real Time & Query API for Financial News

    Project mention: How do i find a good News API? | reddit.com/r/algotrading | 2022-06-06

    I have found in the past this one https://github.com/janlukasschroeder/realtime-newsapi but not sure if it meets your criteria. Worth to check as it is free.

  • fifa-api

    React + Node.js + socket.io -- Multiplayer Game server

  • Devto-clone

    Dev.to clone

    Project mention: 💁‍♂️ Built a Dev.to replica with The MERN stack and more | dev.to | 2022-09-17
  • faeshare

    MERN based social media web app made with the help of Next.js, Socket.io and TailwindCSS.

  • SyncPaint

    A web app for synchronized group drawing. Draw together with other people in real time.

  • Sonar

    Write Clean JavaScript Code. Always.. Sonar helps you commit clean code every time. With over 300 unique rules to find JavaScript bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-02-04.

JavaScript socket-io related posts

Index

What are some of the best open-source socket-io projects in JavaScript? This list will help you:

Project Stars
1 uptime-kuma 29,127
2 js-stack-from-scratch 19,743
3 nodeBB 13,170
4 Laverna 8,984
5 mirotalksfu 1,167
6 Vynchronize 1,152
7 Darkwire.io 771
8 vue-socket.io-extended 628
9 social-network 583
10 WebRTC-Video-Broadcast 422
11 vue-chess 411
12 instagram-mern 345
13 Video-Chat 341
14 local-party 201
15 Whisper 141
16 stream-live-system 121
17 FileDrop 121
18 TikTok-Chat-Reader 109
19 realtime-newsapi 100
20 fifa-api 89
21 Devto-clone 70
22 faeshare 66
23 SyncPaint 60
Write Clean JavaScript Code. Always.
Sonar helps you commit clean code every time. With over 300 unique rules to find JavaScript bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.
www.sonarsource.com