{"id":17019043,"url":"https://github.com/robert-96/websockets-cursor-sharing","last_synced_at":"2026-04-27T12:38:11.901Z","repository":{"id":95800032,"uuid":"607902845","full_name":"Robert-96/websockets-cursor-sharing","owner":"Robert-96","description":"An interactive web application that shares cursor positions in real-time, created using WebSockets and Node.js.","archived":false,"fork":false,"pushed_at":"2023-03-02T22:13:04.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-15T00:17:23.044Z","etag":null,"topics":["demo","javascript","nodejs","sockjs","websocket"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Robert-96.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-28T22:53:06.000Z","updated_at":"2023-03-02T21:21:37.000Z","dependencies_parsed_at":"2023-06-28T20:54:41.949Z","dependency_job_id":null,"html_url":"https://github.com/Robert-96/websockets-cursor-sharing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robert-96%2Fwebsockets-cursor-sharing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robert-96%2Fwebsockets-cursor-sharing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robert-96%2Fwebsockets-cursor-sharing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Robert-96%2Fwebsockets-cursor-sharing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Robert-96","download_url":"https://codeload.github.com/Robert-96/websockets-cursor-sharing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244985316,"owners_count":20542802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["demo","javascript","nodejs","sockjs","websocket"],"created_at":"2024-10-14T06:47:54.007Z","updated_at":"2026-04-27T12:38:11.846Z","avatar_url":"https://github.com/Robert-96.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# websockets-cursor-sharing\n\n\u003e An interactive web application that shares cursor positions in real-time, created using WebSockets and Node.js.\n\nThis demo application is designed to generate a distinct colored cursor icon for each user who is connected to the application. As a user moves their mouse, their cursor icon moves on their own screen and on the screen of every other connected user. The movement of the cursor icon is updated in real-time as the user moves their mouse.\n\n## How it's built?\n\n* `/app` is the frontend application.\n* `/server` is a WebSocket server.\n* Web app connects to the WebSocket server.\n* On connection, each client is assigned an id and a color.\n* On mouse move, coordinate updates are sent to the server.\n* The server adds the client's id and other metadata.\n* The new coordinates are sent to all the clients.\n\n## What's in here?\n\nThis repository consists of two variations of a demonstration application that leverages WebSockets to share cursor positions. The primary version uses [ws](https://www.npmjs.com/package/ws) on the `main` branch, whereas the `sockjs` branch utilizes [SockJS](https://www.npmjs.com/package/sockjs).\n\n## Running this Demo\n\n```bash\n\u003e npm install\n\u003e npm run start\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobert-96%2Fwebsockets-cursor-sharing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobert-96%2Fwebsockets-cursor-sharing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobert-96%2Fwebsockets-cursor-sharing/lists"}