Well rounded developer with over 15 years of experience on both front end, back end and cloud infrastructure. Has been a part of multiple start up exits (successful ones), and has grown various companies from ground level to 100MM ARR. Willing to put in the work to get anything accomplished and also has a strong leadership and mentorship mentality to the people around me.
So you invalidate all tokens? Or it is per user ID salt. If the latter where do you keep the salts and why not simply having a server side session ID, instead of the salt
We have been using it (0.4.1) since it came out, and really cannot say enough good things about it. We were able to cut down our socket server nodes by ~ 50%, and it is way more stable (both server wise and connection wise). Combined with AWS, it really has made life extremely easy.
We use SocketIO as our main interface through NodeJS, and the websocket engine is uWS. The intermediary to communicate between servers is Redis. EC2 + ELB (the new application load balancer is slick) makes it scalable quickly.
So -- m3.large ec2 instances have a few problems with them. 1, your only running a 2 core machine (1 worker, and assuming 1 broker to distribute through redis). That is not nearly enough to handle really a real-time chat server where everyone is spamming it all the time. Another issue is the network performance of an m3.large instance -- its moderate (which is another word for not very good).
With 2 c4.8xlarge instances behind ELB, we consistently see between 20 to 50K active connections on live meetings, and the servers sit at < 2% usage. Latency between event cycles is < 0.015ms.
I see a lot of people having problems with this, but the issue is usually the resources they give to it, or the actual handling of socket events. If the socket server is just a relay there should be no reason a single m4.4xlarge instance cant handle 600K+ connections.
From personal experience -- switching from socket.io to socketcluster.io for our conferencing platform was a life saver. Its so much more stable & performant its crazy. We also use it to run our webrtc video chat platform which works great as well. Cant say enough good things about this.
Should say that we horizontally scale this thing pretty heavily using the sc-redis module. Elasticache + ELB + 4 EC2 Instances = support for 5000+ person conferences :D
www.talkfusion.com -- in specific, the live meetings & video chat portion use socket cluster as its backer. We generally use c4.8xlarge instances to back the socket infrastructure.
Remote: Yes
Willing to Relocate: No
Technologies: Elixir, Python, Ruby, Typescript, React/Svelte/Vue, Postgres/Mysql, AWS/GCP, Rust, Go, Flutter & React Native
Email: ryan@otternaut.com
Resume: https://www.dropbox.com/scl/fi/dlck0y8mu9crayu5mk5ya/resume-...
LinkedIn: https://linkedin.com/in/ryanpager
Github: https://github.com/ryanpager
Summary:
Well rounded developer with over 15 years of experience on both front end, back end and cloud infrastructure. Has been a part of multiple start up exits (successful ones), and has grown various companies from ground level to 100MM ARR. Willing to put in the work to get anything accomplished and also has a strong leadership and mentorship mentality to the people around me.