Raks
Raks

Reputation: 870

Notifying a browser about events on server

I have a java based web application(struts 1.2). I have a requirement to display a status on the frontend (jsp). Now the status might change which my server gets notified by another server. But I want this status change to be notified to the browser.

I don't want to make a refresh at intervals. Rather I have to implement something like done in gmail chat, ie. the browser gets notified by changing events on the server.

Any ideas on how to go about this?

I was thinking on lines of opening a request to server for status, and at the server end I would hold the request and wouldn't respond back until there is a status change. Any pointers, examples on this?

Upvotes: 0

Views: 64

Answers (2)

Abhinav Singh
Abhinav Singh

Reputation: 2651

Best possible solution will be to make use of XMPP protocol. It's standardized and a lot of open source solutions will get you started within minutes. You can use combination of Smack, StropheJS and Openfire to get your java based app work as desired.

Upvotes: 1

Jón Trausti Arason
Jón Trausti Arason

Reputation: 4698

There's a method called Long Polling (Comet). It basically sends a request to the server. The request thread created on the server simply waits for new data for the user, with a time limit of maybe 1 minute or more. When new data is available it is returned.

The main problem is to tackle the server-side issue, you don't want to have one thread for every user just waiting for new data. Of course you could use some asynchronous methods depending on your back-end.

Ref: http://en.wikipedia.org/wiki/Push_technology

Alternative way would be to use WebSockets. The problem is that it's not supported by all browsers today.

Upvotes: 1

Related Questions