view openwebchat.js @ 33:8146a59c8045

Added basic 'chat' functionality.
author Atul Varma <varmaa@toolness.com>
date Mon, 27 Apr 2009 14:44:40 -0700
parents 4a4b66f5229b
children 10fcf63961d8
line wrap: on
line source

var OpenWebChat = {
  startMessageListener: function startMessageListener(onMessage) {
    var req = new XMLHttpRequest();
    req.multipart = true;
    req.open('GET', 'listen', true);
    req.overrideMimeType('text/plain');
    req.addEventListener(
      "load",
      function onload(evt) {
        onMessage(JSON.parse(req.responseText));
      },
      false
    );
    req.send(null);
  },

  sendMessage: function sendMessage(msg) {
    var req = new XMLHttpRequest();
    req.open('POST', 'send', true);
    req.overrideMimeType('application/json');
    req.send(JSON.stringify(msg));
  }
};

$(window).ready(
  function() {
    var ENTER_KEYCODE = 13;

    $('#outgoing-message').keydown(
      function(evt) {
        var msg = $(this).val();
        if (evt.keyCode == ENTER_KEYCODE) {
          if (msg) {
            $(this).val('');
            OpenWebChat.sendMessage({content: msg});
          }
          evt.preventDefault();
        }
      });

    OpenWebChat.startMessageListener(
      function(msg) {
        var block = $('<p></p>');
        block.html(msg.content);
        $('#incoming-messages').append(block);
      });
  });