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

📄 index.html.js

📁 ICE3.3.0--聊天程序服务器端demo
💻 JS
字号:
// **********************************************************************
//
// 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.
//
// **********************************************************************


//
// The proxy of the poll chat session factory.
//
var DefaultRouter = "Glacier2/router:tcp -p 4502 -h 127.0.0.1";

//
// Erase all childs of a dom element given is id.
//
function clearChilds(id)
{
    var childs = $(id).childElements();
    for(var cont = 0; cont < childs.length; cont++)
    {
        childs[cont].remove();
    }
}

function processInputEvent(event)
{
    if(event.keyCode == 13)
    {
        send($('txtMessage').value);
    }
}

function clearInputEvent(event)
{
    if(event.keyCode == 13)
    {
        document.getElementById('txtMessage').value = "";
    }
}

var ChatViewProxy = Class.create(
{
    setState:function(state)
    {
        if(state == "Connecting")
        {
            clearChilds('errorView');
            $('loginContainer').hide();
            $('connectingContainer').show();
            var statusBar = new Element('div', {'id': 'statusBar'}).update('<b class="connecting">Connecting</b>');
            $('statusBar').replace(statusBar);
            return;
        }
        if(state == "Connected")
        {
            $('loginContainer').hide();
            $('connectingContainer').hide();
            $('conversationView').show();
            $('logoutLink').show();
            var statusBar = new Element('div', {'id': 'statusBar'}).update('<b class="online">Online</b>');
            $('statusBar').replace(statusBar);
            return;           
        }
        if(state == "Disconnecting")
        {
            $('logoutLink').hide();
            var statusBar = new Element('div', {'id': 'statusBar'}).update('<b class="offline">Disconnecting</b>');
            $('statusBar').replace(statusBar);
            return;           
        }
        if(state == "Disconnected")
        {
            $('txtMessageReadOnly').hide();
            $('logoutLink').hide();
            $('loginLink').hide();
            $('conversationView').hide();
            $('connectingContainer').hide();
            $('loginContainer').show();
            
            var statusBar = new Element('div', {'id': 'statusBar'}).update('<b class="offline">Offline</b>');
            $('statusBar').replace(statusBar);
            clearChilds('userList');
            $('txtMessage').value = "";
            clearChilds('messageView');
            clearChilds('errorView');
            $('txtUserName').focus();
            return;
        }
    },
    
    connectionLost:function(error)
    {
        var statusBar = new Element('div', { 'id': 'statusBar'}).update('<i class="offline">Offline</i>');
        $('statusBar').replace(statusBar);
        Element.hide('txtMessage');
        Element.hide('logoutLink');
        $('loginLink').show();
        $('txtMessageReadOnly').show();
        this.addMessage(error);
    },
    
    addUser:function(name)
    {
        var user = new Element('li', {'id': '_' + name}).update(name);
        $('userList').insert(user);

    },
    
    delUser:function(name)
    {
        $('_' + name).remove();
    },
    
    userSay:function(timestamp, name, message)
    {
        this.addMessage("<div>" + timestamp + " - &lt;" + name + "&gt; " + message+ "</div>");
    },
    
    setError:function(error)
    {
        this.setState("Disconnected");
        $('errorView').insert(new Element('div').update(error));
    },
    
    addMessage:function(message)
    {
        $('messageView').insert(new Element('div').update(message));
        $('messageView').scrollTop = $('messageView').scrollHeight;
    }
});


// Call the login operation using a scriptable Cs method.
function login()
{
    var sl = getSlControl();
    sl.Content.ChatCoordinator.setDefaultRouter(DefaultRouter);
    sl.Content.ChatCoordinator.login($('txtUserName').value, $('txtPassword').value);
}

// Call the logout operation using a scriptable Cs method.
function logout()
{
    var sl = getSlControl();
    sl.Content.ChatCoordinator.logout();
}

// Call the send operation using a scriptable Cs method.
function send(message)
{
    var sl = getSlControl();
    sl.Content.ChatCoordinator.send(message);
}

// Get a reference to the silverlight plugin.
function getSlControl()
{
    return document.getElementById("SilverlightControl");
}

// Show the about dialog.
function about()
{
    text = "Chat Demo \n"
            + "Copyright \u00A9 2005-2008 ZeroC, Inc. All rights reserved.\n";
    alert(text);
}

⌨️ 快捷键说明

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