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

📄 cometddemo.java

📁 jetty SERVER連接資料庫用的軟體
💻 JAVA
字号:
// ========================================================================// Copyright 2007 Mort Bay Consulting Pty. Ltd.// ------------------------------------------------------------------------// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.//========================================================================package org.cometd.demo;import java.util.Set;import org.mortbay.cometd.AbstractBayeux;import org.mortbay.cometd.ClientImpl;import org.mortbay.cometd.MessageImpl;import org.mortbay.cometd.continuation.ContinuationCometdServlet;import org.mortbay.cometd.ext.TimesyncExtension;import org.mortbay.jetty.Server;import org.mortbay.jetty.bio.SocketConnector;import org.mortbay.jetty.handler.ContextHandlerCollection;import org.mortbay.jetty.handler.MovedContextHandler;import org.mortbay.jetty.nio.SelectChannelConnector;import org.mortbay.jetty.security.SslSelectChannelConnector;import org.mortbay.jetty.security.SslSocketConnector;import org.mortbay.jetty.servlet.Context;import org.mortbay.jetty.servlet.ServletHolder;import org.mortbay.resource.Resource;import org.mortbay.resource.ResourceCollection;import org.mortbay.thread.QueuedThreadPool;import org.cometd.Client;import org.cometd.Extension;import org.cometd.Message;/* ------------------------------------------------------------ *//** Main class for cometd demo. *  * @author gregw * */public class CometdDemo{    private static int _testHandshakeFailure;        /* ------------------------------------------------------------ */    /**     * @param args     */    public static void main(String[] args) throws Exception    {        int port = args.length==0?8080:Integer.parseInt(args[0]);             String base="../../..";                // Manually contruct context to avoid hassles with webapp classloaders for now.        Server server = new Server();        QueuedThreadPool qtp = new QueuedThreadPool();        qtp.setMinThreads(5);        qtp.setMaxThreads(200);        server.setThreadPool(qtp);                SelectChannelConnector connector=new SelectChannelConnector();        // SocketConnector connector=new SocketConnector();        connector.setPort(port);        server.addConnector(connector);        SocketConnector bconnector=new SocketConnector();        bconnector.setPort(port+1);        server.addConnector(bconnector);                SslSelectChannelConnector connector2=new SslSelectChannelConnector();        // SslSocketConnector connector2=new SslSocketConnector();        connector2.setPort(port-80+443);        connector2.setKeystore(base+"/etc/keystore");        connector2.setPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");        connector2.setKeyPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");        connector2.setTruststore(base+"/etc/keystore");        connector2.setTrustPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");        server.addConnector(connector2);          ContextHandlerCollection contexts = new ContextHandlerCollection();        server.setHandler(contexts);                MovedContextHandler moved = new MovedContextHandler(contexts,"/","/cometd");        moved.setDiscardPathInfo(true);                Context context = new Context(contexts,"/cometd",Context.NO_SECURITY|Context.SESSIONS);                context.setBaseResource(new ResourceCollection(new Resource[]        {            Resource.newResource("./src/main/webapp/"),            Resource.newResource("./target/cometd-demo-6.1-SNAPSHOT/"),        }));                // Demo bayeux session manager        // context.getSessionHandler().setSessionManager(new BayeuxSessionManager());        // context.addServlet(com.acme.SessionDump.class,"/session");        // context.addServlet(com.acme.Dump.class,"/dump");                // Cometd servlet        ContinuationCometdServlet cometd_servlet=new ContinuationCometdServlet();        ServletHolder cometd_holder = new ServletHolder(cometd_servlet);        cometd_holder.setInitParameter("filters","/WEB-INF/filters.json");        cometd_holder.setInitParameter("timeout","180000");        cometd_holder.setInitParameter("interval","100");        cometd_holder.setInitParameter("maxInterval","60000");        cometd_holder.setInitParameter("multiFrameInterval","5000");        cometd_holder.setInitParameter("logLevel","1");                context.addServlet(cometd_holder, "/cometd/*");        context.addServlet("org.mortbay.jetty.servlet.DefaultServlet", "/");        context.addEventListener(new BayeuxServicesListener());                server.start();                AbstractBayeux bayeux = cometd_servlet.getBayeux();                bayeux.setSecurityPolicy(new AbstractBayeux.DefaultPolicy(){            public boolean canHandshake(Message message)            {                if (_testHandshakeFailure<0)                {                    _testHandshakeFailure++;                    return false;                }                return true;            }            });                // Demo lazy messages        if (Boolean.getBoolean("LAZY"))        {            bayeux.addExtension(new Extension()            {                public Message rcv(Client from, Message message)                {                    if (message.getChannel().startsWith("/chat/") && message.getData()!=null && message.getData().toString().indexOf("lazy")>=0)                        ((MessageImpl)message).setLazy(true);                    return message;                }                public Message rcvMeta(Client from, Message message)                {                    return message;                }                public Message send(Client from, Message message)                {                    return message;                }                public Message sendMeta(Client from, Message message)                {                    return message;                }            });        }            }}

⌨️ 快捷键说明

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