Documentation

Trace:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
jvx:communication:push_publish [2019/03/14 13:05]
admin
jvx:communication:push_publish [2019/03/14 13:08]
admin
Line 6: Line 6:
 In JVx we have a keep alive mechanism and this usually checks, every 30 seconds, if the connection to the server-side is still valid. This alive check can be used to send properties to the client, using [[jvx:​communication:​client_server_properties|connection properties]]. It's also known as server-side polling mechanism. But this mechanism isn't the best approach for sending any kind of information to the client-side. In JVx we have a keep alive mechanism and this usually checks, every 30 seconds, if the connection to the server-side is still valid. This alive check can be used to send properties to the client, using [[jvx:​communication:​client_server_properties|connection properties]]. It's also known as server-side polling mechanism. But this mechanism isn't the best approach for sending any kind of information to the client-side.
  
-To solve this problem, we introduced the Callback Broker on server-side. This broker is available for any session via [[jvx:​server:​lco:​sessioncontext|SessionContext]]. It makes it possible to send any object to the client-side. The client-side is able to listen to so called call-back calls. A call-back call is not the same as an [[jvx:​communication:​async_callback|async call]]. The difference is that an async call will be triggered from the client-side and starts a new Thread on server-side,​ for the execution. A call-back call is triggered from the server-side and sends information to the client-side.+To solve this problem, we introduced the Callback Broker on server-side. This broker is available for any session via [[jvx:​server:​lco:​sessioncontext|SessionContext]]. It makes it possible to send any object to the client-side. The client-side is able to listen to so called call-back calls and e.g. change the UI or trigger data updates. 
 +  
 +A call-back call is not the same as an [[jvx:​communication:​async_callback|async call]]. The difference is that an async call will be triggered from the client-side and starts a new Thread on server-side,​ for the execution. A call-back call is triggered from the server-side and sends information to the client-side.
  
 If you publish a message, it's not guaranteed that the message will be pushed immediately to the client-side. This is technology dependent, e.g. it will work immediately with [[vaadin:​home|Vaadin UI]] because websockets are supported. If the technology doesn'​t support push, the pull mechanism via alive check will be used. So it's guaranteed that the client-side receives the message as soon as possible. If you publish a message, it's not guaranteed that the message will be pushed immediately to the client-side. This is technology dependent, e.g. it will work immediately with [[vaadin:​home|Vaadin UI]] because websockets are supported. If the technology doesn'​t support push, the pull mechanism via alive check will be used. So it's guaranteed that the client-side receives the message as soon as possible.
Line 33: Line 35:
 SessionContext.getCurrentInstance().getCallBackBroker().publish("​COUNT_ADD",​ Integer.valueOf(1));​ SessionContext.getCurrentInstance().getCallBackBroker().publish("​COUNT_ADD",​ Integer.valueOf(1));​
 </​code>​ </​code>​
-on the server-side. But be careful if you run in a Thread, because the broker won't be available outside the server execution thread. So, use a cached instance of the broker, e.g.:+on the server-side. ​ 
 + 
 +**But be careful** if you run in a Thread, because the broker won't be available outside the server execution thread. So, use a cached instance of the broker, e.g.:
  
 <code java> <code java>
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information