<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="ltr">Hi, and sorry for the late reply!<br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Oct 13, 2014 at 5:51 PM, Rainer Hansen <span dir="ltr">
<<a href="mailto:rainer.hansen@gmx.net" target="_blank">rainer.hansen@gmx.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Gonzalo,<br>
<br>
thanks a lot for the hint. Could you please elaborate a little bit on<br>
this? What were the problems you have had because of the proxy filtering<br>
and how did Cowboy help you to solve them?<br>
</blockquote>
<div><br>
</div>
<div>We found out that some spanish mobile 3G/4G providers gave us problems with their transparent proxies and firewalls with TCP connections in ports different than the 80. That's why we chose the Websockets protocol, which handshake is done via HTTP. We still
 had problems with a certain 3G provider so we moved to Websockets Secure, which uses a SSL/TLS layer below the Websockets one, and voilĂ , problem solved.</div>
<div><br>
</div>
<div>Cowboy supports WS and WSS so it made it quite straightforward to implement.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I wonder also how do you handle the case that the mobile internet<br>
connectivity can get sometimes suddenly offline and after a few minutes<br>
online again because of bad coverage or the player taking a small break?<br>
<div class="HOEnZb">
<div class="h5"><br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Cowbo has a websocket handler behaviour which basically allows an erlang process to manage a websocket connection. Then we have a chat session process for each user. When a websocket connection starts it connects to it's corresponding session, which handles
 e.g a history of messages sent, to which chat room processes should be connected etc. When a websocket connection is dropped the handler is killed but the session is still alive, so the next time the user connects a new handler will be spawned and connected
 (we do that with gproc) to the session.</div>
<div><br>
</div>
<div>Hope it helps!</div>
<div><br>
</div>
<div>Regards,</div>
<div>Gonzalo.</div>
</div>
</div>
</div>
</body>
</html>