Java WebSocket服务端demo
1、pom文件
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.3.5</version>
</dependency>
2、创建WebsocketServer类
package com.nosya; import org.java_websocket.WebSocket; import org.java_websocket.handshake.ClientHandshake; import org.java_websocket.server.WebSocketServer; import java.net.InetSocketAddress; import java.net.UnknownHostException; public class SocketServer extends WebSocketServer { public SocketServer(int port) throws UnknownHostException { super(new InetSocketAddress(port)); } public SocketServer(InetSocketAddress address) { super(address); } @Override public void onOpen(WebSocket conn, ClientHandshake handshake) { conn.send("Welcome to the server!"); // This method sends a message to the new client broadcast("new connection: " + handshake .getResourceDescriptor()); // This method sends a message to all clients connected System.out.println( conn.getRemoteSocketAddress().getAddress().getHostAddress() + " entered the room!"); } @Override public void onClose(WebSocket conn, int code, String reason, boolean remote) { broadcast(conn + " has left the room!"); System.out.println(conn + " has left the room!"); } @Override public void onMessage(WebSocket conn, String message) { broadcast(message); System.out.println(conn + ": " + message); } @Override public void onError(WebSocket conn, Exception ex) { ex.printStackTrace(); if (conn != null) { // some errors like port binding failed may not be assignable to a specific // websocket } } @Override public void onStart() { System.out.println("Server started!"); setConnectionLostTimeout(0); setConnectionLostTimeout(100); } }
3、启动SocketServer
public static void main(String[] args) throws Exception { testWS(); } private static void testWS() throws Exception { int port = 8887; // 843 flash policy port SocketServer s = new SocketServer(port); s.start(); System.out.println("ChatServer started on port: " + s.getPort()); BufferedReader sysin = new BufferedReader(new InputStreamReader(System.in)); while (true) { String in = sysin.readLine(); s.broadcast(in); if (in.equals("exit")) { s.stop(1000); break; } } }
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号