Comet

play.api.libs.Comet
object Comet

Helper function to produce a Comet using Pekko Streams.

Please see https://en.wikipedia.org/wiki/Comet_(programming) for details of Comet.

Example:

 def streamClock() = Action {
   val df: DateTimeFormatter = DateTimeFormatter.ofPattern("HH mm ss")
   val tickSource = Source.tick(0 millis, 100 millis, "TICK")
   val source = tickSource.map((tick) => df.format(ZonedDateTime.now()))
   Ok.chunked(source via Comet.flow("parent.clockChanged"))
 }

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Comet.type

Members list

Value members

Concrete methods

def flow(callbackName: String, initialChunk: ByteString): Flow[ByteString, ByteString, NotUsed]

Creates a flow of ByteString. Useful when you have objects that are not JSON or String where you may have to do your own conversion.

Creates a flow of ByteString. Useful when you have objects that are not JSON or String where you may have to do your own conversion.

Usage example:

 val htmlStream: Source[ByteString, ByteString, NotUsed] = Flow[Html].map { html =>
   ByteString.fromString(html.toString())
 }
 ...
 Ok.chunked(htmlStream via Comet.flow("parent.clockChanged"))

Attributes

def json(callbackName: String): Flow[JsValue, ByteString, NotUsed]

Produces a flow of ByteString using Json.fromJson(_).get from a Flow of JsValue. Calls out to Comet.flow internally.

Produces a flow of ByteString using Json.fromJson(_).get from a Flow of JsValue. Calls out to Comet.flow internally.

Value parameters

callbackName

the javascript callback method.

Attributes

Returns

a flow of ByteString elements.

def string(callbackName: String): Flow[String, ByteString, NotUsed]

Produces a Flow of escaped ByteString from a series of String elements. Calls out to Comet.flow internally.

Produces a Flow of escaped ByteString from a series of String elements. Calls out to Comet.flow internally.

Value parameters

callbackName

the javascript callback method.

Attributes

Returns

a flow of ByteString elements.

Concrete fields

val initialHtmlChunk: Html