@(username: String)(implicit r: RequestHeader) $(function() { var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket var chatSocket = new WS("@routes.Application.chat(username).webSocketURL()") var sendMessage = function() { chatSocket.send(JSON.stringify( {text: $("#talk").val()} )) $("#talk").val('') } var receiveEvent = function(event) { var data = JSON.parse(event.data) // Handle errors if(data.error) { chatSocket.close() $("#onError span").text(data.error) $("#onError").show() return } else { $("#onChat").show() } // Create the message element var el = $('
') $("span", el).text(data.user) $("p", el).text(data.message) $(el).addClass(data.kind) if(data.user == '@username') $(el).addClass('me') $('#messages').append(el) // Update the members list $("#members").html('') $(data.members).each(function() { var li = document.createElement('li'); li.textContent = this; $("#members").append(li); }) } var handleReturnKey = function(e) { if(e.charCode == 13 || e.keyCode == 13) { e.preventDefault() sendMessage() } } $("#talk").keypress(handleReturnKey) chatSocket.onmessage = receiveEvent })