All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jquery.application.js Maven / Gradle / Ivy

$(function () {
    "use strict";

    var header = $('#header');
    var content = $('#content');
    var input = $('#input');
    var status = $('#status');
    var myName = false;
    var author = null;
    var logged = false;
    var socket = $.atmosphere;
    var subSocket;
    var transport = 'websocket';

    // We are now ready to cut the request
    var request = { url: document.location.protocol + "//" + document.location.host + '/chat',
        contentType: "application/json",
        logLevel: 'debug',
        transport: transport,
        enableProtocol: false,
        fallbackTransport: 'long-polling'};


    request.onOpen = function (response) {
        content.html($('

', { text: 'Atmosphere connected using ' + response.transport })); input.removeAttr('disabled').focus(); status.text('Choose name:'); transport = response.transport; }; // For demonstration of how you can customize the fallbackTransport using the onTransportFailure function request.onTransportFailure = function (errorMsg, request) { jQuery.atmosphere.info(errorMsg); if (window.EventSource) { request.fallbackTransport = "sse"; } header.html($('

', { text: 'Atmosphere Chat. Default transport is WebSocket, fallback is ' + request.fallbackTransport })); }; request.onMessage = function (response) { var message = response.responseBody; try { var json = jQuery.parseJSON(message); } catch (e) { console.log('This doesn\'t look like a valid JSON: ', message.data); return; } if (!logged && myName) { logged = true; status.text(myName + ': ').css('color', 'blue'); input.removeAttr('disabled').focus(); } else { input.removeAttr('disabled'); var me = json.author == author; var date = typeof(json.time) == 'string' ? parseInt(json.time) : json.time; addMessage(json.author, json.message, me ? 'blue' : 'black', new Date(date)); } }; request.onClose = function (response) { logged = false; }; request.onError = function (response) { content.html($('

', { text: 'Sorry, but there\'s some problem with your ' + 'socket or the server is down' })); }; subSocket = socket.subscribe(request); input.keydown(function (e) { if (e.keyCode === 13) { var msg = $(this).val(); // First message is always the author's name if (author == null) { author = msg; } subSocket.push(jQuery.stringifyJSON({ author: author, message: msg })); $(this).val(''); input.attr('disabled', 'disabled'); if (myName === false) { myName = msg; } } }); function addMessage(author, message, color, datetime) { content.append('

' + author + ' @ ' + +(datetime.getHours() < 10 ? '0' + datetime.getHours() : datetime.getHours()) + ':' + (datetime.getMinutes() < 10 ? '0' + datetime.getMinutes() : datetime.getMinutes()) + ': ' + message + '

'); } });





© 2015 - 2025 Weber Informatics LLC | Privacy Policy