首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大气“套接字”得不到参考

大气“套接字”得不到参考
EN

Stack Overflow用户
提问于 2015-02-08 13:58:41
回答 1查看 92关注 0票数 0

嗨,我试图创建一个简单的聊天应用程序使用气氛。我的Application1.xml无法使用var socket = $.atmosphere;创建“套接字”的引用。

下面是我使用过的代码块。我在大气中是个菜鸟。

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

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2015-12-03 16:43:51

像这样声明大气变量是不好的:

代码语言:javascript
复制
var socket = $.atmosphere;

如果将大气库声明到您的bower.json中,并且所有来自and的javascript源都被声明为bower组件,那么就分配如下所示的可变气氛:

代码语言:javascript
复制
var socket = atmosphere;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28394745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档