I added timeout handling to the dice services.  So, if the network drops packets for some reason, a timeout handler will re-enable the roll submission button.  Right now, the timeout is 10 seconds, which is an eternity when you’re on the Internet, but sometimes the server needs the time to handle your request.

I still need to handle the condition where a request takes longer than 10 seconds to complete.  In that case, the timeout will fire before the incoming request response comes in.  As I’ve now attached a “request ID” to each request, which is copied to the server response data, the request handler can check to see if the incoming response matches the most recent request ID and ignore latecomers.  I haven’t added that bit of code yet to the response handler; time’s been tight this week.  That said, I did add the “rid” plumbing to the client-side Javascript and server-side Ruby code.

Once this is done, I’ll be back at scheduling the final migration from the KenWare site.

Update:

I added the request ID checker to the response handler.  This should be good to go now.