If you leave Socket.IO, another option is direct WebSocket in Java https://github.com/TooTallNate/Java-WebSocket http://java-websocket.org/
On Wed, Jul 17, 2013 at 8:37 PM, Anand Prakash <anand.prak...@gmail.com>wrote: > Hi Sean, > We are in process for going with a similar solution on clojure. Lets keep > sharing notes. > > We were on heroku till last week. Websockets wont work on heroku. Lack of > sticky session caused other issues. So we moved to elabstic beanstalk. > However elastic beanstalk doesn't support jetty and I do not like tomcat. > Plus on elastic beanstalk whenever you push code they have a down time upto > 5 minutes. > So over the past 2 days, we moved things to chef on ec2 which I am really > happy with. Now we have a system as easy to use as heroku, with much more > control. I am mentioning these because you or others might go through the > same steps. > > Coming to your main point about Socket.IO. We spent around a week > exploring Socket.IO. It was super easy to hack up a demo, however we ended > up leaving it for couple of reasons: > 1. Though the community looks very active in terms of forks etc, the > development on Socket.IO is completely stopped. The dev team is focussed on > engine.IO and they are very opaque. When you post on socket.io google > group, posts do not have get approved. If you propose to help, you do not > get any response. > 2. The library has lot of features - like rooms etc. However they are not > built to scale. I looked at the code and was very disappointed. User->Room > mapping, Room->User mapping were stored in memory which will make it not > scale beyond a point. Bad coding (e.g. using lists traversal where hash > maps should be used) is very common in nodejs community and I am very wary > of developing on that platform. > 3. There was a memory leak in Socket.IO which would cause memory to > increase linearly with usage. Given that most projects using nodejs dont > move beyond prototypes these kind of issues do not get highlighted. I used > to manage the mobile server at LinkedIn and we had to deal with a lot of > memory leaks with node.js. > 4. Javascript > > So finally, if you really have to use Socket.IO, I would recommend using > https://github.com/einaros/ws for just websocket and built everything > else yourselves. > > I am not a big fan of keeping two different setups at the stage of our > product. We are fine with long-poll for now. So we will start there and > eventually get to web sockets. We are considering http://http-kit.org/ for > that. For communication between message generators and open client sockets > we are exploring some pub sub solution. > > Hope this helps. > > Thanks > Anand > > > On Tuesday, July 16, 2013 10:07:34 PM UTC-7, Sean Corfield wrote: >> >> At work we're starting down the path of building a new piece of >> functionality based on WebSockets and the external team we're working >> with is a Node.js shop so their go to solution is Socket.IO and >> they've produced a very nice front end in CoffeeScript and a prototype >> back end on Node.js. >> >> I'd really like to have our back end on the JVM, of course, and so I'd >> like to find a JVM-based Socket.IO solution that I use from/with >> Clojure... >> >> This seems like a reasonable option: >> >> https://github.com/mrniko/**netty-socketio<https://github.com/mrniko/netty-socketio> >> >> A little bit of experimentation with lein-try (Thank you Ryan!) shows >> that it's pretty easy to get a basic server up and running in the REPL >> - and I was able to get several of their demos running unchanged >> against Clojure, instead of their Java applications, so that was >> promising. >> >> Are there other folks out there doing Socket.IO stuff with Clojure? >> What approaches have you taken? >> >> Obviously, we could run Node.js and have it hit a Clojure-based REST >> API to do the integration, and that might be less pain long term >> but... >> -- >> Sean A Corfield -- (904) 302-SEAN >> An Architect's View -- http://corfield.org/ >> World Singles, LLC. -- http://worldsingles.com/ >> >> "Perfection is the enemy of the good." >> -- Gustave Flaubert, French realist novelist (1821-1880) >> > -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.