Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Preview of new Web based RIVA client
Did you give that throttling disable option a try?
Dean Roddey
Software Geek Extraordinaire
Reply
The really silly thing is that I put in a lot of work to move the websocket connection handling to a web worker, because the whole purpose of those is to run code in the background and not get shut down. But, browser can do whatever they want. There's this friction currently between wanting to make the browser an application platform, but not wanting to allow the things that are really necessary to make that happen. Having things run continuously in the background is a fundamental thing and it's hard to do a lot of types of applications without it.

I don't think it's anything to do with timers, which the browser can definitely slow down or stop. There's only one timer in the program, which is used defer sending user touch input too quickly. Everything else is driven by the websocket being connected or lost, and input coming from the server. So it would seem that it would have to be that it's causing the web socket to get closed by not allowing us any CPU after a while.

Well I take that back, there is a timer in the web worker. It's use to reconnect, but that would only happen if we lost connection. And it's used as a keep alive ping to send to the server. But the interval is 30 seconds. I would hope that it would let us wake up once every 30 seconds. Though, it does send a notification to the main application to actually send the ping because all msg I/O I wanted to keep in one class. I'm not sure what throttling does to the passing of web worker notifications out to the application
Dean Roddey
Software Geek Extraordinaire
Reply
Tried to get throttling turned off today. I can find info related to Safari throttling but no info on how to turn it off.

I installed Chrome but accessing chrome://flags there is no option in Chrome for iOS to turn off throttling.

No luck.

Side note - Chrome was much less responsive compared to Safari using WebRiva on an iPhone7.
Reply
The throttling option is a command line thing. Add the option I indicated above to the command line you use to start it.
Dean Roddey
Software Geek Extraordinaire
Reply
I guess one thing I could do is to sense when we go to the background and send a message to the server saying I'm in slo-mo mode. The server could then stop sending it drawing commands and the two could just do the regular pings to keep the connection alive. When I sense that we are coming back out of the background, I could send a message saying OK, I'm back to regular, and the server would force a full redraw, which would get the client visually caught up. That should happen (sans any 'swapping in code' overhead on the part of the browser) as quickly as the initial redraw does.

If the thing that's causing the lost connection is that the client can't respond quickly enough to drawing commands and it gets backed up and eventually can't send pings quickly enough and the server drops it, that could prevent this issue.

OTOH, if Safari is just being a CPU Nazi and is stopping us altogether after some period of time, then it will be a bunch of work for nothing. It would be worth flushing the CQC logs, putting the tab in the background and leaving it there, noting the time, and then seeing if a disconnect shows up in the logs and how long.

BTW, you don't have any of the debug logging options on, do you? Those would tens to cause more traffic and more problems when we get CPU constrained.
Dean Roddey
Software Geek Extraordinaire
Reply
I also noticed the disconnect issue, and while it's a bit of an annoyance, my overall experience has been so good that combined with the use of Echo Dots, I hardly use my Windows tablets anymore. I'm quite happy with the web client.
Reply
BTW, those folks who are seeing differences in text display, when there is multi-line text involved, are probably depending on text length to cause the wrapping. You can't really do that because I can't control the size of text that accurately on a different platform. And sometimes it can just be a pixel or two that makes the word width difference between whether it wraps around or not.

So you should explicitly put those new lines into the text itself and not depend on font size. That will also of course insure it doesn't change if you should ever tweak the size of the buttons or the font selection. You can use the ... to edit the text in the little editor and put in the line breaks.

And of course, the opposite, if it's now wrapping when it didn't before, be sure to turn off line wrap on those if you don't want them wrap, and then they will not do that on either platform.
Dean Roddey
Software Geek Extraordinaire
Reply
Just wanted to let everyone know that Dean has made tremendous progress on getting the web camera widget to work in the WebRIVA viewer. The current implementation requires you to have the Kurento Media Server running on your network and that software is only available on Linux. I loaded Ubuntu 14.04 on an old laptop, installed the KMS and it works. So with this combination, you can now view IP cameras using the WebRIVA viewer in your browser.
Reply
Bryan pointed out that there can sometimes be an extra space between words in the WebRIVA client. That's certainly my fault. I'm having to do my own line breaking, and that involves splitting it into words and then I have to get the spaces back in place, and I may have an error there and I'll look at that. Still though, you should insure correct breakage by building it into the design.
Dean Roddey
Software Geek Extraordinaire
Reply
Brief update on the web cam widget in the WebRIVA viewer. It's looks like Apple doesn't support WebRTC in their ios 10.x OS but there's a chance that they will support it in the soon to be relaesed ios 11. I'm currently installing ios 11 beta on an iPad mini. Hopefully this will support WebRTC.
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  The RIVA Comm Buf Mgr pool is full and cannot be expanded any further zra 52 3,713 05-14-2017, 08:54 PM
Last Post: Dean Roddey
  HTTP-based Trigger Driver Docs znelbok 5 656 03-11-2017, 09:34 PM
Last Post: Dean Roddey
  Client Side Drivers pinballmark 2 586 12-13-2016, 01:31 PM
Last Post: pinballmark
  Room config HTML based app preview Dean Roddey 5 716 11-05-2016, 02:53 PM
Last Post: Dean Roddey
  5.0 Preview Stuff Dean Roddey 108 6,673 11-01-2016, 11:06 AM
Last Post: Dean Roddey
  Repository + RIVA problems chmilar 7 809 03-29-2016, 02:14 PM
Last Post: Dean Roddey
  4.8.2 preview Dean Roddey 18 1,234 01-26-2016, 12:59 PM
Last Post: Dean Roddey
  Repointing CQC Client to new server address? Deane Johnson 11 1,246 11-10-2015, 02:11 AM
Last Post: Deane Johnson
  Client won't connect Deane Johnson 12 1,322 10-30-2015, 03:18 PM
Last Post: Deane Johnson
  Graphing on IOS Client zra 1 904 04-04-2015, 09:29 AM
Last Post: Dean Roddey

Forum Jump:


Users browsing this thread: 1 Guest(s)