Also, I just realized that Websockify can server Web content with the <span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;line-height:19px;white-space:nowrap;background-color:rgb(248,248,248)">--web DIR</span> option. This means that (if we want), a Vanilla Netrek server could act as Web host to serve the HTML5 client and as a Websocket server to directly handle Websocket traffic from the client.<div>
<br></div><div>Incidentally, if you look at <a href="http://netrek.nodester.org">http://netrek.nodester.org</a>, I've added the beginnings of a tutorial. I've included basic moving and shooting controls, but I've run into the problem that any advanced instruction requires other people on the server: specifically, getting kills to enable carrying. I suppose the existing bots could work for this, but it seems regrettable that I must ask a newbie to score a kill before he can learn about how winning the game actually works.<div>
<br></div><div>I've also added Xbox 360 gamepad support for Chrome in the Github repo (it's really neat!), but I haven't pushed it to Nodester yet because their service is on the fritz at the moment.</div><div>
<br></div><div>Andrew</div><div><br><br><div class="gmail_quote">On Fri, Mar 1, 2013 at 8:40 PM, Andrew Sillers <span dir="ltr"><<a href="mailto:apsillers@gmail.com" target="_blank">apsillers@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">My proxy is a simple Websocket-to-TCP proxy, which can easily be run on the same machine as the actual server. The proxy code is largely a reinvention of Websockify (<a href="https://github.com/kanaka/websockify" target="_blank">https://github.com/kanaka/websockify</a>), which I didn't know about when I started coding this a year ago. Websockify actually would be perfect for this task. If you look in their Github README, you'll see:<div>

<br></div><div>> <span style="line-height:22px;color:rgb(51,51,51);font-size:14px;font-family:Helvetica,arial,freesans,clean,sans-serif">websockify has the ability to launch a program on the local system and proxy WebSockets traffic to a normal TCP port owned/bound by the program</span><br>

<br>which means that you could run `./websockify 16446 localhost:2592` on your server, and now any incoming Websocket traffic will be routed as plain TCP to port 2592.</div><div><br></div><div>I really *should* be using Websockify, because their error-handling support is much more robust, and it would remove a dependency on Node.js. (Websockify is plain C, which makes it perfect for packaging alongside the rest of the server code.) I'll need to rewrite a few things to make the code play nice with Websockify, but I think I'll do that shortly and get rid of the need for my custom proxy altogether.</div>
<span class="HOEnZb"><font color="#888888">
<div><br></div><div>Andrew</div></font></span><div class="HOEnZb"><div class="h5"><div><br><br><div class="gmail_quote">On Fri, Mar 1, 2013 at 5:17 PM, James Cameron <span dir="ltr"><<a href="mailto:quozl@us.netrek.org" target="_blank">quozl@us.netrek.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Fri, Mar 01, 2013 at 02:49:05PM +0100, Sven Neuhaus wrote:<br>
> Hi Andrew et al,<br>
><br>
> this project is highly interesting. With the advent of WebRTC and<br>
> RTCDatachannel browsers can now use UDP peer2peer communication, which<br>
> will be a great boost for lag sensitive games such as netrek.<br>
><br>
> It would be even better if we had an alternative protocol for netrek<br>
> (that the server also understands) so that no proxy is necessary for web<br>
> clients.<br>
<br>
</div>Agreed.  While UDP was once needed to optimise networks with loss and<br>
reordering problems, modern networks are much better.  So a new<br>
protocol with better compatibility for the web client sandbox<br>
environment would be helpful.  The payload need not change, but the<br>
transport can.<br>
<br>
Alternatively, the proxy can be integrated into the server program set.<br>
<div><br>
--<br>
James Cameron<br>
<a href="http://quozl.linux.org.au/" target="_blank">http://quozl.linux.org.au/</a><br>
</div><div><div>_______________________________________________<br>
netrek-dev mailing list<br>
<a href="mailto:netrek-dev@us.netrek.org" target="_blank">netrek-dev@us.netrek.org</a><br>
<a href="http://mailman.us.netrek.org/mailman/listinfo/netrek-dev" target="_blank">http://mailman.us.netrek.org/mailman/listinfo/netrek-dev</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>