⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chat.js

📁 ICE3.3.0--聊天程序服务器端demo
💻 JS
📖 第 1 页 / 共 2 页
字号:
// **********************************************************************//// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved.//// This copy of Chat Demo is licensed to you under the terms// described in the CHAT_DEMO_LICENSE file included in this// distribution.//// **********************************************************************var maxMessageSize = 1024;var coordinator = 0;function formatDate(timestamp){    d = new Date();    d.setTime(timestamp);    return d.toLocaleTimeString();}function formatUsername(name){    if(name.length <= 2)    {        return name;    }    return name.substring(0, 1).toUpperCase() + name.substring(1, name.length).toLowerCase();}function clearChilds(id){    var childs = $(id).childElements();    for(var i = 0; i < childs.length; i++)    {        childs[i].remove();    }}function stripHtml(input){    var output = "";    for(var cont = 0; cont < input.length; cont++)    {        switch(input.charAt(cont))        {             case '&':            {                output += "&amp;";                break;            }            case '"':            {                output += "&quot;";                break;            }            case '\'':            {                output += "&#39;";                break;            }            case '<':            {                output += "&lt;";                break;            }            case '>':            {                output += "&gt;";                break;            }            case '\r':            case '\n':            case '\v':            case '\f':            case '\t':            {                output += " ";                break;            }            default:            {                output += input.charAt(cont);                break;            }        }    }    return output;}function isNumber(o){    return "number" == typeof o;}var Coordinator = Class.create({    initialize:function(chatView)    {        this._chatView = chatView;        this._updater = 0;        this._init = false;        this.setConnected(false);        coordinator = this;    },    login:function(name, password)    {        var username = name;        var params = new Hash();        params.set('action', 'login');        params.set('username', name);        params.set('password', password);        var coordinator = this;        var opts =        {            contentType:'application/x-www-form-urlencoded',            method:'post',            encoding:'UTF-8',            parameters:params,            onComplete:function(transport)            {                Element.hide('connectingContainer');                Element.show('loginContainer');                if(transport.status != 200)                {                    coordinator.setError("Connection with the web server failed:", "HTTP status code: " + transport.status);                    return;                }                var response = transport.responseText.evalJSON(true);                if( response.jsontype == 'Session')                {                    coordinator.setSessionId(response.id);                    coordinator.setConnected(true);                    coordinator._username = formatUsername(username);                    return;                }                if(response.jsontype == "PollingChat_CannotCreateSessionException")                {                    coordinator._chatView.appendError("Login failed:", response.reason);                    return;                }                if(response.jsontype == "Ice_UnknownLocalException")                {                    coordinator._chatView.appendError("Communication with server failed (Ice_UnknownLocalException)", response.unknown);                    return;                }                coordinator._chatView.appendError("Communication with server failed:", transport.responseText);            }        };        new Ajax.Request('Chat.php', opts);    },    logout:function()    {        if(this.updater)        {            this.updater.stop();            Chat.updater = 0;        }        var params = new Hash();        params.set('id', this._sessionId);        params.set('action','logout');        var opts =        {            contentType:'application/x-www-form-urlencoded',            method:'post',            encoding:'UTF-8',            parameters:params,            onComplete: function(transport)            {            }        };        new Ajax.Request('Chat.php', opts);        this.setConnected(false);    },    getInitialUsers:function()    {        if(coordinator._connected)        {            var params = new Hash();            params.set('id', this._sessionId);            params.set('action','getInitialUsers');            var opts =            {                contentType:'application/x-www-form-urlencoded',                method:'post',                encoding:'UTF-8',                parameters:params,                onComplete:function(transport)                {                    if(transport.status != 200)                    {                        coordinator.connectionLost("<b>Connection with the web server failed: " + transport.status + "</b>");                        return;                    }                    var response = transport.responseText.evalJSON(true);                    if(response.jsontype !== undefined)                    {                        if(response.jsontype == "Ice_UnknownLocalException")                        {                            coordinator.connectionLost("(Ice_UnknownLocalException) " + response.unknown);                            return;                        }                        coordinator.connectionLost(transport.responseText);                        return;                    }                    if(!isNumber(response.length))                    {                        coordinator.connectionLost(transport.responseText);                        return;                    }                    for(var i = 0; i < response.length; i++)                    {                        var user = new Element('li', { 'id': '_' + response[i] }).update(response[i]);                        $('userList').insert(user);                    }                    coordinator._init = true;                    coordinator.getUpdates();                }            }            new Ajax.Request('Chat.php', opts);        }    },    getUpdates:function()    {        if(!coordinator._connected || !coordinator._init)        {            return;        }        var params = new Hash();        params.set('id', coordinator._sessionId);        params.set('action','getUpdates');        var opts =        {            contentType:'application/x-www-form-urlencoded',            method:'post',            encoding:'UTF-8',            parameters:params,            onComplete:function(transport)            {                if(!coordinator._connected)                {                    return;                }                if(transport.status != 200)                {                    coordinator.connectionLost("<b>Could not contact web server HTTP status code: " + transport.status + "</b>");                    return;                }                var response = transport.responseText.evalJSON(true);                if(response.jsontype !== undefined)                {                    if(response.jsontype == "Ice_UnknownLocalException")                    {                        coordinator.connectionLost("(Ice_UnknownLocalException) " + response.unknown);                        return;                    }                    coordinator.connectionLost(transport.responseText);                    return;                }                if(!isNumber(response.length))                {                    coordinator.connectionLost(transport.responseText);                    return;                }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -