2015-02-08 92 views
0

嗨我想创建一个简单的聊天应用程序使用大气。 我的Application1.xml无法使用 var socket = $.atmosphere;创建“套接字”的引用。大气'插座'没有得到参考

下面是我用过的代码块。我是一个气氛中的白人。

application1.xml $(函数(){ “使用严格”;

var content = $('#content'); 
var input = $('#input'); 
var status = $('#status'); 
var myName = false; 
var author = null; 
var logged = false; 
var socket = $.atmosphere; 
var request = { url: document.location.toString() + 'chat', 
       contentType : "application/json", 
       logLevel : 'debug', 
       transport : 'websocket' , 
       trackMessageLength : true, 
       fallbackTransport: 'long-polling'}; 


request.onOpen = function(response) { 
    content.html($('<p>', { text: 'Atmosphere connected using ' + response.transport })); 
    input.removeAttr('disabled').focus(); 
    status.text('Choose name:'); 
}; 

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); 
     return; 
    } 

    input.removeAttr('disabled').focus(); 
    if (!logged) { 
     logged = true; 
     status.text(myName + ': ').css('color', 'blue'); 
    } else { 
     var me = json.author == author; 
     var date = jQuery.now(); 
     addMessage(json.author, json.message, me ? 'blue' : 'black', new Date(date)); 
    } 
}; 

request.onClose = function(response) { 
    logged = false; 
} 

request.onError = function(response) { 
    content.html($('<p>', { text: 'Sorry, but there\'s some problem with your ' 
     + 'socket or the server is down' })); 
}; 

var 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('<p><span style="color:' + color + '">' + author + '</span> @ ' + 
     + (datetime.getHours() < 10 ? '0' + datetime.getHours() : datetime.getHours()) + ':' 
     + (datetime.getMinutes() < 10 ? '0' + datetime.getMinutes() : datetime.getMinutes()) 
     + ': ' + message + '</p>'); 
} 

});

atmosphere.js

回答

0

这不是好申报这样的氛围变量:

var socket = $.atmosphere; 

如果气氛库被宣布为您bower.json和所有的JavaScript源从大气到凉亭的部件,分配可变的气氛,如:

var socket = atmosphere;