Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Some basic docs on the WebRIVA client
#1
Version 5.1.900 has been posted and includes the first public drop of the new WebRIVA client. There's no formal docs for it yet, so this is just to provide you with enough to get started.
  • If you install the Web Server on any machine, the code for the WebRIVA client is installed as well, so you can serve up the client from that machine if desired
  • All of the code is served up from the Web Server so there is nothing to install on the actual client machines.

Invocation

To invoke the client you would use this URL:

http://[webserver]/CQSL/WebRIVA/index.html?user=[username]&pw=[password]

And of course it can, and generally should, be an HTTPS connection, which means you would want to install a security certificate on our web server. That's a topic covered elsewhere. Otherwise, the user name and password are transmitted in the clear, and all of the other communications is as well, though that's of less concern than the login info.

As with the previous RIVA clients, the default template for the user account you log in under will be loaded automatically and you have no means to select another. So you MUST set a valid default template for the user account!

This client uses WebSockets to connect to the server, so it's a persistent connection. And if the server is lost it will automatically keep trying to reconnect. It will pop up a reconnecting screen. It will also continue to operate in the background, so probably you want to stop it when not using it on things like phones. The amount of back and forth is not large, and it's event driven not polled, but still it will be using up battery and potentially transferring data depending on how active the templates are that you are viewing.

URL Options

In addition to the user name and password URL options. For general use these are available:
  • nocache=1. Disables template caching, same as in the regular IV. Normally you wouldn't use this, but when testing you want to see changes as soon as you make them.
  • tarport=xxx. You generally should not need this one anymore. It controls what port the Javascript uses to make the Websocket connection to the CQC web server. By default now it will use either any explicit port you used to do the initial HTTP connection, or if not explicit it will use the default 80/443 port depending on whether you connected insecure or secure.
  • sessname=xxx. If you add this, any WebRIVA specific logging done by the web server will include this session name, to make it easier to identify a particular client when you have more than one.
  • nopixelscale=1". By default, the client will set the view scaling so that it undoes any default scaling done by the device. This allows you to create templates the same size as your device's resolution and have them fit. Often the devices have a default 'pixel ratio' or 2 or more (meaning 1 pixels of the original becomes 2x2 pixels as displayed.) If you don't want this and want to let it size up the contents, this option will allow that.

For debugging purposes, these are available and normally you'd only set them if we ask you to:
  • logimgproc=1. Log information about the client's processing of images
  • loggraphcmds=1. Log information about the client's processing of graphics commands. This can generate a lot of outout, little of which would be of meaning to you.
  • logtouch=1. Log information about user touch/mouse input that the client sees, to help diagnose input issues.
  • logwebsock=1. Log information about the status of the client's websocket connection
  • logmisc=1. Log miscellaneous client information that doesn't fall into any of the above categories.
  • logtosrv=1. Normally the above logging would be done to the browser's own console (via the standard F12 tool.) But, if the client doesn't have or expose such things, you can set this to have the messages logged to the server. Obviously this only works when the client is able to connect so it cannot be used to diagnose connection issues.

Full Screen

Thanks to hackers we cannot force the application full screen via, say, a URL option, you have to do it manually. To do this you will need to bring up the options menu. On a touch screen do a two finger press and release. With a mouse, left press and hold for about 3 seconds and release. One of the options there is to enter or exit full screen mode.

Your particular browser may provide some more convenient way to do it. The program does request either a full screen or minimal UI presentation, and this may work on some browsers. If you save the URL to the home screen and invoke it from there some browsers take that as a hint that the program should be able to do more than normally would be the case, which may allow those requests to work if they don't normally.

Known Limitations

There are still some limitations, given that it's a first drop.
  • IE is not a supported browser because it doesn't support HTML templates, and probably won't. If you run it on IE it will just show the templates as though they are normal content, when they are supposed to not be shown.
  • Right now it will not correct draw widgets with rounded borders. You will see the background fill color in those little corner areas not covered by the rounded widget shape. This will be addressed in a subsequent drop.
  • Also thanks to hackers Javascript cannot close the tab it is running it, so the System::Exit() action command in the base template cannot actually close the tab as it can close the regular IV program.

Portability

Of course browsers ain't as consistent as one might hope in terms of implementation of features. So there may be compatibility issues. So far it's been tested on Edge, Chrome, and FF on Windows 10. Actually it's been a bit since I tested it on FF, so there may be some issues there, I'll have to try that guy again.

If you run into troubles let me know and we can dig into it and see what is going on. There are various debugging options available. It's going to require a pretty modern and up to date browser, so don't be surprised if there are issues on anything not up to date. I don't want to go hacking it up and making it even more complex by trying to support a bunch of old variations. It's based on modern capabilities in a pretty fundamental way. 

It's not based on any third party libraries. It's all bespoke Typescript code written by me. The only other thing is the required little module loader that Typescript requires. But it's not involved in the actual functionality just in the loading of JavaScript modules themselves. So there should be no platform discrepancies involved on that front.

Expected Performance

The performance should be quite good, though obviously it'll depend somewhat on the oomph of the device you are running it on, the performance of the network between it and the Web Server, and the size/complexity of the images that you use. On a wired client the performance should be very much similar to the regular IV.

Obviously keep in mind that the guts of the IV are running in the Web Server, so if you have five WebRIVA clients, that's like five IVs all running on the same machine. So it's a considerably heavier than the Web Server's more common duty of just serving up files.


That's it basically. I may remember some other stuff later and update this post. But give it a shot and see how it works for you.
Dean Roddey
Software Geek Extraordinaire
Reply
#2
Updated for 5.1.902, mostly removed some limitations that were previously there.
Dean Roddey
Software Geek Extraordinaire
Reply
#3
I got some WebRIVA docs into the main HTML documentation for the next drop. It's in the /Tools section along with all of the other user tools.
Dean Roddey
Software Geek Extraordinaire
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  HTML5 client use case kfly 4 944 06-05-2017, 10:56 AM
Last Post: lleo
  New room config based HTML client Dean Roddey 71 12,101 03-14-2017, 07:40 PM
Last Post: lleo
  client driver error after upgrade to 4.8.1 batwater 1 1,092 12-31-2015, 11:39 AM
Last Post: Dean Roddey
  RIVA Server and Client DaveB 1 915 02-18-2013, 07:32 PM
Last Post: DaveB
  Trouble Upgrading Client to v4.1.901 sic0048 7 1,610 03-24-2012, 02:46 AM
Last Post: sic0048
  Installation gives me no Admin client. beelzerob 9 2,374 05-21-2008, 10:35 AM
Last Post: Dean Roddey

Forum Jump:


Users browsing this thread: 1 Guest(s)