<div dir="ltr">Hi Lyn,<div><br></div><div>I usually avoid posting Elixir related solutions in here but, if Elixir is an option, you should take a look at Phoenix: <a href="http://www.phoenixframework.org/">http://www.phoenixframework.org/</a><br><div class="gmail_extra"><br></div><div class="gmail_extra">Phoenix is a framework running on top of Cowboy and has a feature called channels that seems to provide what you are looking for:</div><div class="gmail_extra"><br></div><div class="gmail_extra">* Handle websockets and fallback to long-polling when websockets is not available</div><div class="gmail_extra">* Support cross-origin headers in both websockets and long-polling transports</div><div class="gmail_extra">* Good browser compatibility (our long-polling implementation supports way back to IE8)</div><div class="gmail_extra">* Ability to "force" SSL, allowing only https/ws connections</div><div class="gmail_extra"><br></div><div class="gmail_extra">Channels run on top of a pubsub system, which allows anywhere in your application to broadcast messages to all connected clients on a given topic. We have recently written on how we got 2 million websocket connections on a single machine (at an arrival rate of 20k/s iirc).</div><div class="gmail_extra"><br></div><div class="gmail_extra">Finally, the pubsub system is distributed. So if you want to deploy over multiple machines, we will use Distributed Erlang. No need for Redis. We are also working on a Phoenix Presence feature, using CRDTs alongside Distributed Erlang, so if you need presence support in the future, it will be handy too.</div><div class="gmail_extra"><br></div><div class="gmail_extra">If you are interested in more information, you can try the <a href="http://www.phoenixframework.org/docs/overview">Phoenix guides</a>, <a href="https://groups.google.com/forum/#!forum/phoenix-talk">the mailing list</a> or join us on #elixir-lang on IRC Freenode.</div><div class="gmail_extra"><div><div class="gmail_signature"><div dir="ltr"><div><div><br></div><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div><span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Director of R&D</span></div></span></div></span></div></div></div></div></div>
<br><div class="gmail_quote">On Thu, Jan 28, 2016 at 2:00 AM, Lyn Headley <span dir="ltr"><<a href="mailto:lheadley@kcptech.com" target="_blank">lheadley@kcptech.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I am developing a web app that will use client-side js code that I am<br>
writing to issue cross-origin requests from a domain not under my<br>
control to a web server under my control; and am evaluating whether to<br>
use websockets, long-polling, or another method. I need to consider<br>
things like browser compatibility (the more browsers supported, the<br>
better) and security (requests / packets must be secure, so https or<br>
wss I think). My ideal solution will support low latency messaging and<br>
high scalability, but will also support most browsers, and be easy to<br>
install and configure. One tactic for example would be to prefer<br>
websockets, but fall back to long-polling, which is what I understand<br>
<a href="http://socket.io" rel="noreferrer" target="_blank">socket.io</a> does.<br>
<br>
I would be interested to hear any experiences you might have in this<br>
domain, and any recommendations you might have for erlang libraries,<br>
servers, etc. Has anyone done this? What stack did you deploy? What<br>
were the issues you encountered?<br>
<br>
I have a slight bias in favor of yaws, because I have already gotten<br>
it running, but am open to other web servers if it turns out to be too<br>
hard to make yaws do what I want.<br>
<br>
Thanks,<br>
Lyn<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br></div></div></div>