View Javadoc

1   //
2   //  ========================================================================
3   //  Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd.
4   //  ------------------------------------------------------------------------
5   //  All rights reserved. This program and the accompanying materials
6   //  are made available under the terms of the Eclipse Public License v1.0
7   //  and Apache License v2.0 which accompanies this distribution.
8   //
9   //      The Eclipse Public License is available at
10  //      http://www.eclipse.org/legal/epl-v10.html
11  //
12  //      The Apache License v2.0 is available at
13  //      http://www.opensource.org/licenses/apache2.0.php
14  //
15  //  You may elect to redistribute this code under either of these licenses.
16  //  ========================================================================
17  //
18  
19  package org.eclipse.jetty.websocket.common.extensions.mux.add;
20  
21  import java.io.IOException;
22  
23  import org.eclipse.jetty.websocket.api.UpgradeRequest;
24  import org.eclipse.jetty.websocket.api.UpgradeResponse;
25  import org.eclipse.jetty.websocket.common.WebSocketSession;
26  import org.eclipse.jetty.websocket.common.extensions.mux.MuxChannel;
27  import org.eclipse.jetty.websocket.common.extensions.mux.MuxException;
28  import org.eclipse.jetty.websocket.common.extensions.mux.Muxer;
29  
30  /**
31   * Server interface, for dealing with incoming AddChannelRequest / AddChannelResponse flows.
32   */
33  public interface MuxAddServer
34  {
35      public UpgradeRequest getPhysicalHandshakeRequest();
36  
37      public UpgradeResponse getPhysicalHandshakeResponse();
38  
39      /**
40       * Perform the handshake.
41       * 
42       * @param channel
43       *            the channel to attach the {@link WebSocketSession} to.
44       * @param requestHandshake
45       *            the request handshake (request headers)
46       * @throws AbstractMuxException
47       *             if unable to handshake
48       * @throws IOException
49       *             if unable to parse request headers
50       */
51      void handshake(Muxer muxer, MuxChannel channel, UpgradeRequest request) throws MuxException, IOException;
52  }