📄 oortdemo.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.oort;import org.mortbay.cometd.continuation.ContinuationCometdServlet;import org.mortbay.jetty.Server;import org.mortbay.jetty.handler.ContextHandlerCollection;import org.mortbay.jetty.nio.SelectChannelConnector;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;/* ------------------------------------------------------------ *//** Main class for cometd demo. * * This is of use when running demo in a terracotta cluster * * @author gregw * */public class OortDemo{ private static int _testHandshakeFailure; private Oort _oort; /* ------------------------------------------------------------ */ /** * @param args */ public static void main(String[] args) throws Exception { OortDemo d8080=new OortDemo(8080); OortDemo d8081=new OortDemo(8081); // OortDemo d8082=new OortDemo(8082); } /* ------------------------------------------------------------ */ public OortDemo(int port) throws Exception { 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); ContextHandlerCollection contexts = new ContextHandlerCollection(); server.setHandler(contexts); Context context = new Context(contexts,"/",Context.NO_SECURITY|Context.SESSIONS); String version = Server.getVersion(); if (Server.UNKNOWN_VERSION.equals(version)) version=Server.SNAPSHOT_VERSION; context.setBaseResource(new ResourceCollection(new Resource[] { Resource.newResource(base+"/../demo/src/main/webapp/"), Resource.newResource(base+"/../demo/target/cometd-demo-"+version+"/"), })); // Cometd servlet ServletHolder cometd_holder = new ServletHolder(ContinuationCometdServlet.class); cometd_holder.setInitParameter("timeout","200000"); cometd_holder.setInitParameter("interval","100"); cometd_holder.setInitParameter("maxInterval","100000"); cometd_holder.setInitParameter("multiFrameInterval","1500"); cometd_holder.setInitParameter("directDeliver","true"); cometd_holder.setInitParameter("logLevel","1"); cometd_holder.setInitOrder(1); context.addServlet(cometd_holder, "/cometd/*"); ServletHolder oort_holder = new ServletHolder(OortServlet.class); oort_holder.setInitParameter(Oort.OORT_URL,"http://localhost:"+port+"/cometd"); oort_holder.setInitParameter(Oort.OORT_CHANNELS,"/chat/**"); oort_holder.setInitParameter(Oort.OORT_CLOUD,(port==8080)?"http://localhost:"+8081+"/cometd":"http://localhost:"+8080+"/cometd"); oort_holder.setInitOrder(2); context.addServlet(oort_holder, "/oort/*"); ServletHolder seti_holder = new ServletHolder(SetiServlet.class); seti_holder.setInitParameter(Seti.SETI_SHARD,"S"+(port%2)); seti_holder.setInitOrder(2); context.addServlet(seti_holder, "/seti/*"); ServletHolder demo_holder = new ServletHolder(OortDemoServlet.class); demo_holder.setInitOrder(3); context.getServletHandler().addServlet(demo_holder); context.addServlet("org.mortbay.jetty.servlet.DefaultServlet", "/"); server.start(); _oort = (Oort)context.getServletContext().getAttribute(Oort.OORT_ATTRIBUTE); assert(_oort!=null); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -