1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- @(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 = $('<div class="message"><span></span><p></p></div>')
- $("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
- })
|