excalidraw / excalidraw-room Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://portal.excalidraw.com
License: MIT License
Home Page: https://portal.excalidraw.com
License: MIT License
While messing around with a simple Real-Time app, I encountered the following issue:
When the socket receives the disconnecting
event, it fails to properly notify the associated rooms about the disconnection due to the usage of the incompatible for..in
loop (no iteration is performed).
Currently, within the codebase, there exists a situation where the socket.rooms
object, defined as a Set<string>
, is being iterated using a for..in
loop. However, for..in loops aren't compatible with Sets
, potentially causing unexpected behavior or errors.
Due to this problem, the server fails to emit the expected room-user-change
event.
Refactor the iteration of socket.rooms
to use for..of
, forEach
, or any loop mechanism compatible with Set<string>
to ensure proper iteration and avoid potential issues related to incompatible iteration methods.
$ npm -v
9.8.1
$ node -v
v18.18.2
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
Running pm2 start pm2.production.json
starts excalidraw-room
.
excalidraw-room
fails to start.
[PM2][WARN] Applications excalidraw-collab not running, starting...
[PM2][ERROR] Error: Script not found: /home/user/Desktop/excalidraw-room/dist/index.js
> git clone https://github.com/excalidraw/excalidraw-room.git
> cd excalidraw-room
> yarn
pm2 start pm2.production.json
OS: Linux Mint 21.1 x86_64
Typescript version: 4.2.3
Yarn version: 3.6.1
NPM version: 10.1.0
This might be a good start.. https://github.com/GoogleCloudPlatform/github-actions/tree/master/setup-gcloud
Looks like this project is no longer used at portal.excalidraw.com, so that information is now misleading. It is no longer compatible with the current version of excalidraw/excalidraw. Please mark this project as archived, it will save some time to a lot of people.
Today at 7:12 AM (9 hours ago) #109 was merged which fixed the build which triggered a new release to be deployed and broke live collaboration.
I tried reverting it but the previous commit actually didn't build. I tried to reverting another pull request ( #112 ) but that didn't build either.
Instead of blindly reverting things, I looked at the commit that last built from heroku (August 21) and reverted the code to that commit ( #113 )
This brought the old version alive and live collaboration is now working again.
Right now we should be good with that old version, the problem is mitigated. Some thoughts about what to do next:
https://socket.io/docs/using-multiple-nodes/
Right now, the websocket server only uses one node. As the app grows in users we will reach a point where this is no longer sustainable, so we'll need to be able to handle hosting multiple nodes and broadcasting events between them.
Hi!
I tried to setup excalidraw (Docker) to use this colab server (Docker) via overlay network, but it seems as if it is totally ignoring it. I set the necessary env variables in the .env file for excalidraw, but does not seem to use them at all.
It would be nice to get a hint how to use this.
Many thanks!
Regards
Holger
Hello,
I tried building this project using
docker build -t excalidraw-room .
This works for commit 3531472, but not for the latest master.
Hello,
I want to setup a self hosted environnement using the 2 containers: excalidraw and excalidraw-room
There is no documentation on how to connect / link the client to the server..
I tried to set the variable REACT_APP_WS_SERVER_URL, but nothing.
Could you guys help me please?
How to make this work?
docker pull docker.io/excalidraw/excalidraw
docker pull docker.io/excalidraw/excalidraw-room
docker run -d -p 8081:80 excalidraw/excalidraw-room:latest
docker run -d -p 8080:80 -e REACT_APP_WS_SERVER_URL=http://127.0.0.1:8081 excalidraw/excalidraw:latest
Thx
I looked at the codebase, two repo uses two different server, excalidraw talks to 3000 and this opens socket at 3002. How to make the excalidraw from 3000 to talk to 3002?
What set up do I need in my docker-compose file, to make both containers work together? A compose file from a different issue on this repo doesn't seem to make sense and there doesn't seem to be any useful documentation for making both containers work together and there is no official compose file for this. Can anyone help me out with this?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.