TWebsocketclient

Hi Bruno,

i send a lot of data via twebsocketclient to a websocket server and i have questions:

  1. Is there any info wether the client is able to send a string of a certain length before sending ?
  2. What is the limit for the data size ?
  3. What happens if i overrun the socketclient with too much text ? [f.e. several send() in a timer loop]
  4. Is there any event that tells me if an error occured ?
  5. I am missing an event when data is transfered to the server.

Thanks in advance
Peter

Are you referring to our small test socket server built with Indy and that is in the folder of the FNC chat demo?

Hi Bruno,

Fast answer: No !

Websocketclient is TMS Webcore.

Websocketserver is esegece running in the DMZ of our customers typically on a VMWare cluster with windows servers.

IIS is also running in this cluster.

The commnication via websockets runs very well.

But i am missing errorhandling on the client side and therefore i have a few questions.

Actually all messages are smaller than 64 kByte and are running perfect. But in the future it may be wanted to transfer jpgs too.

For my projects several mobile users of my customers have tablets (android and ios) and connect to the IIS in their DMZ via https.

They want to use about 10 different apps. Some apps may run multiple in the same tablet (each with different data and rights).

So i use a central TMS Webapp for login, authentication , right managment and for handling connect, disconnect and auto reconnect

to the websocket server From this „master“ app the user can start different (sub) apps. These Webapps are then

running in additional tabs on the browser.

So i need a communication between the master tab and the different subtabs. That is the reason why i asked you for

support of broadcast channels. I am still waiting for an answer wether you will support it or not.

As long as you are investigating i tried to build my own communication between the tabs via Tlocalstore.

This runs too but i would like to have a notify event in Pascal when one tabs has changed somethin in localstorage.

Javsscript can create this event . See : https://hermes.arnelle.me 2

Adding this notify event to Tlocalstorage should be no great problem for you.

As long as you are investigating in localstorage i tried to solve this problem with a timer in my mainapp that looks into

localstorage with an interval of about 100 msec. This is working too but then a new problem arised:

You can define a timer with a interval in then range of millisecond. But when the user moves to another tab and the

tab with the timer becomes inactive all browsers slow down the timer interval to exactly 1 second. regardless of what you

have declared in the timer component. They do this for good reasons!

So my communication works but speed is poor. A notify event would do it much better. Polling is no state of the art.

Best regards

Peter

  1. local storage change notification is on our todolist, might be best case in v1.8 (not 100% confirmed yet)
  2. broadcast channel is on our list for investigation. This will be for post v1.8

Thank you very much

Peter