Mercurial > hg > Members > kazz > WebSocket
view src/WebSocketServer.java @ 2:d5d2ca53a832
dealed dispose of connection close
author | kazz |
---|---|
date | Sat, 22 Jan 2011 05:30:20 +0900 |
parents | 5a50d4b48bf9 |
children |
line wrap: on
line source
import java.io.IOException; import java.net.InetSocketAddress; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; public class WebSocketServer { public static int port; private ServerSocketChannel ssChannel; private Selector selector; private boolean running = true; public WebSocketServer(int port) { this.port = port; try { ssChannel = ServerSocketChannel.open(); ssChannel.socket().bind(new InetSocketAddress(port)); ssChannel.configureBlocking(false); selector = Selector.open(); ssChannel.register(selector, SelectionKey.OP_ACCEPT, new AcceptHandler()); } catch (IOException e) { System.out.println("Can't open ServerSocketChannel."); e.printStackTrace(); } } public void mainLoop() { while (running) { try { int keyCount = selector.select(0); for (SelectionKey key : selector.selectedKeys()) { Handler handler = (Handler) key.attachment(); handler.handle(key); // selector.selectedKeys().remove(key); } selector.selectedKeys().clear(); } catch (IOException e) { e.printStackTrace(); } } } /** * @param args */ public static void main(String[] args) { WebSocketServer wsServer = new WebSocketServer(11000); wsServer.mainLoop(); } }