rest - Mule 3.6 and Server Sent Events -
i trying add server sent events rest component of mule 3.6 esb flow. having trouble getting data browser. connect java method after eventsource sent error occurs in browser. appreciated.
<http:listener-config name="http_listener_configuration" host="0.0.0.0" port="8082" doc:name="http listener configuration"/> <flow name="restservice" > <http:listener config-ref="http_listener_configuration" path="/*" doc:name="http"> <http:response-builder> <http:header headername="access-control-allow-origin" value="*"/> <http:header headername="access-control-allow-methods" value="get,post"/> </http:response-builder> </http:listener> <jersey:resources doc:name="rest"> <component> <spring-object bean="restservice"/> </component> </jersey:resources> </flow>
java code using example on jersey 2 sse
@get @path("/notifications") @produces(ssefeature.server_sent_events) public eventoutput getnotificationevents() { final eventoutput eventoutput = new eventoutput(); new thread(new runnable() { @override public void run() { try { (int = 0; < 10; i++) { // ... code waits 1 second final outboundevent.builder eventbuilder = new outboundevent.builder(); eventbuilder.name("message-to-client"); eventbuilder.data(string.class, "hello world " + + "!"); final outboundevent event = eventbuilder.build(); eventoutput.write(event); } } catch (ioexception e) { throw new runtimeexception( "error when writing event.", e); } { try { eventoutput.close(); } catch (ioexception ioclose) { throw new runtimeexception( "error when closing event output.", ioclose); } } } }).start(); return eventoutput; }
javascript connection code
var notifications= new eventsource("http://localhost:8082/notifications"); notifications.onopen = function (e) { console.log("waiting message.."); }; notifications.onerror = function (e) { console.log("error"); console.log(e); }; notifications.onmessage=function (e) { console.log(e); };
javascript console logs onopen waiting message.. error , e event following. bubbles: false cancelbubble: false cancelable: false currenttarget: eventsource defaultprevented: false eventphase: 0 path: array[0] returnvalue: true srcelement: eventsource target: eventsource timestamp: 1433120172045 type: "error"
Comments
Post a Comment