<div dir="ltr"><div>> Is there already a setup where I get an Erlang process waiting for a next message from a browser, replying to the browser with a message?</div><div><br></div><div>Well, you don't need BEAM on a browser to have it. If you use web sockets, then Cowboy will spawn an Erlang process per each connection and manage its state. On a client, you need to have a singleton (or whatever) and do the same state management. Then you code a line protocol, and voila. And the web socket connection is persistent. This approach has an advantage: you can delegate the development of a browser UI to 'front-end' developers.</div><img src="https://mltrk.io/pixel/p6NFYgp8NPvpA0InZ8X0?rid=p6NFYgp8NPvpA0InZ8X0" width="1" height="1" border="0"></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Oct 8, 2017 at 8:57 AM, Mike French <span dir="ltr"><<a href="mailto:mfrench@tahakom.com" target="_blank">mfrench@tahakom.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="m_-3434172041430331766WordSection1">
<p class="m_-3434172041430331766MsoListParagraph" style="margin-left:.25in">
<u></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><span>(1)<span style="font:7.0pt "Times New Roman"">   
</span></span></span><u></u><span dir="LTR"></span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I assume you want BEAM on Web Assembly these days, not JavaScript  …<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><a href="http://webassembly.org/" target="_blank">http://webassembly.org/</a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Mike<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <a href="mailto:erlang-questions-bounces@erlang.org" target="_blank">erlang-questions-bounces@<wbr>erlang.org</a> [mailto:<a href="mailto:erlang-questions-bounces@erlang.org" target="_blank">erlang-questions-<wbr>bounces@erlang.org</a>]
<b>On Behalf Of </b>Alexandre Karpov<br>
<b>Sent:</b> Sunday, October 08, 2017 5:54 AM<br>
<b>To:</b> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<b>Subject:</b> [erlang-questions] erlang to browsers ("sessions" question, I suppose)<u></u><u></u></span></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Hi all,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I've just started on Cowboy (which I've discovered through this same mailing list, thanks y'all), and the introductory article resonated perfectly and expressed exactly the reasons for me quitting my last job to go on a "sabbatical" studying
 Erlang (which I've first found out back in 2010 from a talk by an Amazon's Principal Engineer in Seattle, who was leagues ahead of me in all things software, and was in love with the language and environment).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Aside from the goal of studying the language and OTP, there were a couple of questions which really interested me; hope they're not too hand-wavy and general to raise up:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">1) Will there be a BEAM emulator in Javascript?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Joe chuckled in one of his talks how back when Erlang was being created, the computers it was to run on were weaker than our modern cell phones =) But, as I can see, the state of the art is still not quite there yet. What are your thoughts
 on it? Will this ever come? If no, why not? - and if yes, then what are the major problems? Because I'm sure you can see why this sounds like a majestic possible universe - imagine each browser a potential Erlang node...<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">2) Aside from that phantasy, having browser acting as a client of some Erlang system is obviously a reality long time ago. There are, well, web servers, and Cowboy with Websockets is an obvious point of interest. Sorry if I am using improper
 terminology here - is Cowboy server a good fit for creating and maintaining "sessions", which is to say, connections which have some sort of a pair of stateful process on the server side and a client side? Normally I'd think of databases when I think of such
 "persistent connections" - connection is actually stateless, but every request from a client is accompanied by database queries, and so we're faking the "session"... with WebSockets+Erlang, is there a more real session option? Is there already a setup where
 I get an Erlang process waiting for a next message from a browser, replying to the browser with a message?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Cheers,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Alex<u></u><u></u></p>
</div>
</div>
</div></div></div>
</div>

<br>______________________________<wbr>_________________<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/<wbr>listinfo/erlang-questions</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">With best regards,<div>     Roman Galeev,</div><div>     +420 702 817 968</div></div></div>
</div>