Package org.java_websocket.server

Source Code of org.java_websocket.server.DefaultSSLWebSocketServerFactory

package org.java_websocket.server;
import java.io.IOException;
import java.net.Socket;
import java.nio.channels.ByteChannel;
import java.nio.channels.SelectionKey;
import java.nio.channels.SocketChannel;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;

import org.java_websocket.SSLSocketChannel2;
import org.java_websocket.WebSocketAdapter;
import org.java_websocket.WebSocketImpl;
import org.java_websocket.drafts.Draft;


public class DefaultSSLWebSocketServerFactory implements WebSocketServer.WebSocketServerFactory {
  protected SSLContext sslcontext;
  protected ExecutorService exec;

  public DefaultSSLWebSocketServerFactory( SSLContext sslContext ) {
    this( sslContext, Executors.newSingleThreadScheduledExecutor() );
  }

  public DefaultSSLWebSocketServerFactory( SSLContext sslContext , ExecutorService exec ) {
    if( sslContext == null || exec == null )
      throw new IllegalArgumentException();
    this.sslcontext = sslContext;
    this.exec = exec;
  }

  @Override
  public ByteChannel wrapChannel( SocketChannel channel, SelectionKey key ) throws IOException {
    SSLEngine e = sslcontext.createSSLEngine();
    e.setUseClientMode( false );
    return new SSLSocketChannel2( channel, e, exec, key );
  }

  @Override
  public WebSocketImpl createWebSocket( WebSocketAdapter a, Draft d, Socket c ) {
    return new WebSocketImpl( a, d );
  }

  @Override
  public WebSocketImpl createWebSocket( WebSocketAdapter a, List<Draft> d, Socket s ) {
    return new WebSocketImpl( a, d );
  }
}
TOP

Related Classes of org.java_websocket.server.DefaultSSLWebSocketServerFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.