public void sendFrame(String body) { if (log.isTraceEnabled()) log.trace("EventSource, sending frame"); if (!headersWritten) { // event stream data is always UTF8 // https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format // no need to specify the character encoding rc.response().putHeader("Content-Type", "text/event-stream"); setNoCacheHeaders(rc); setJSESSIONID(options, rc); rc.response().setChunked(true).write("\r\n"); headersWritten = true; } String sb = "data: " + body + "\r\n\r\n"; Buffer buff = buffer(sb); rc.response().write(buff); bytesSent += buff.length(); if (bytesSent >= maxBytesStreaming) { if (log.isTraceEnabled()) log.trace("More than maxBytes sent so closing connection"); // Reset and close the connection close(); } }
public void sendFrame(String body) { if (log.isTraceEnabled()) log.trace("EventSource, sending frame"); if (!headersWritten) { // event stream data is always UTF8 // https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format // no need to specify the character encoding rc.response().putHeader("Content-Type", "text/event-stream"); setNoCacheHeaders(rc); setJSESSIONID(options, rc); rc.response().setChunked(true).write("\r\n"); headersWritten = true; } String sb = "data: " + body + "\r\n\r\n"; Buffer buff = buffer(sb); rc.response().write(buff); bytesSent += buff.length(); if (bytesSent >= maxBytesStreaming) { if (log.isTraceEnabled()) log.trace("More than maxBytes sent so closing connection"); // Reset and close the connection close(); } }
EventSourceListener(int maxBytesStreaming, RoutingContext rc, SockJSSession session) { super(rc, session); this.maxBytesStreaming = maxBytesStreaming; addCloseHandler(rc.response(), session); }
EventSourceTransport(Vertx vertx, Router router, LocalMap<String, SockJSSession> sessions, SockJSHandlerOptions options, Handler<SockJSSocket> sockHandler) { super(vertx, sessions, options); String eventSourceRE = COMMON_PATH_ELEMENT_RE + "eventsource"; router.getWithRegex(eventSourceRE).handler(rc -> { if (log.isTraceEnabled()) log.trace("EventSource transport, get: " + rc.request().uri()); String sessionID = rc.request().getParam("param0"); SockJSSession session = getSession(rc, options.getSessionTimeout(), options.getHeartbeatInterval(), sessionID, sockHandler); HttpServerRequest req = rc.request(); session.register(req, new EventSourceListener(options.getMaxBytesStreaming(), rc, session)); }); }
EventSourceTransport(Vertx vertx, Router router, LocalMap<String, SockJSSession> sessions, SockJSHandlerOptions options, Handler<SockJSSocket> sockHandler) { super(vertx, sessions, options); String eventSourceRE = COMMON_PATH_ELEMENT_RE + "eventsource"; router.getWithRegex(eventSourceRE).handler(rc -> { if (log.isTraceEnabled()) log.trace("EventSource transport, get: " + rc.request().uri()); String sessionID = rc.request().getParam("param0"); SockJSSession session = getSession(rc, options.getSessionTimeout(), options.getHeartbeatInterval(), sessionID, sockHandler); HttpServerRequest req = rc.request(); session.register(req, new EventSourceListener(options.getMaxBytesStreaming(), rc, session)); }); }
EventSourceListener(int maxBytesStreaming, RoutingContext rc, SockJSSession session) { super(rc, session); this.maxBytesStreaming = maxBytesStreaming; addCloseHandler(rc.response(), session); }