Keeping user screens synchronized

I'm not sure I can relay my question properly but I'll try.


I created a single form TMSWeb app that is used by several users accessing a SQLite DB. When user1 makes an update I want those updates to be seen by user2, 3, 4 etc.  

Is there a "best practices" for TMSWeb to keep user screens updated across multiple users?

Perhaps a data set Close and Load tied to a timer?

I did a search before I posted this and saw pieces of code where people are doing scree updates.  I understand how to do that but nothing regarding keeping screens/data in sync.  

-Scott

A possible solution is to use WebSocket communication. This enables that the server can send notifications to the clients when data was updated on the server requesting the client to reload the data.

I'm familiar with websockets, but I have no idea what your talking about :-)


Sounds like an opportunity for a new notification component.  ;-)

So, there is a way for an XData server to connect to a client Websocket server?  Each client would have a listener and react?  

There wouldn't happen to be an example someplace would there?  I'd have no idea how to implement this on a XData Server.

I really don't want to be pulling data ever X seconds via a timer.  I admit that would be a poor implementation.

-Scott

There is a websocket example under Demo\FNC\Chat 
The websocket communication is NOT built in XData, it is something you would implement in parallel to the XData server that has as role to notify the clients of server side changes that require a data reload.

Doesn't sound too bad.  Is there a "new data" notification event on XData Server?  I don't recall seeing an event I can hook.


-Scott

hang on....  I'd have to monitor connections, pull IP's to notify each person that had a connection at some point?   i take back what I said about "not sounding too bad"  lol....

For XData-side events, you can use the XData events (which are fired at the "endpoint-level"):

http://www.tmssoftware.biz/business/xdata/doc/web/server-side_events.html

or Aurelius events (which are fired at "database-level"):
http://www.tmssoftware.biz/business/aurelius/doc/web/events.html