From f38dd59d93f56213a8400841c7ebb0a7202144a7 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Tue, 26 Nov 2019 00:03:43 -0500 Subject: Share model across fe and be and add websocket support --- webapp/src/Main.scala | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'webapp') diff --git a/webapp/src/Main.scala b/webapp/src/Main.scala index 5aa2f2b..7aa1322 100644 --- a/webapp/src/Main.scala +++ b/webapp/src/Main.scala @@ -5,9 +5,30 @@ import scalajs.js.annotation @annotation.JSExportTopLevel("Main") object Main { + object Templates extends Templates(scalatags.JsDom) + @annotation.JSExport - def func() = { - dom.console.log("hello from ScalaJS!") + def main() = { + + val container = dom.document.getElementById("conversation") + val address = { + val location = dom.window.location + val protocol = if (location.protocol == "https:") { + "wss" + } else { + "ws" + } + s"$protocol://${location.host}/feed" + } + val ws = new dom.WebSocket(address) + + ws.onmessage = event => { + val msg = upickle.default.read[Message]( + event.data.asInstanceOf[String]) + + container.appendChild(Templates.message(msg).render) + dom.window.scrollTo(0, dom.document.body.scrollHeight) + } } } -- cgit v1.2.3