WebSocket客户端java代码



Maven引入websoket的jar包:

<dependency>
	<groupId>org.java-websocket</groupId>
	<artifactId>Java-WebSocket</artifactId>
</dependency>


客户端代码:

package com.cms.integration.common;

import java.net.URI;
import java.net.URISyntaxException;

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft;
import org.java_websocket.drafts.Draft_17;
import org.java_websocket.handshake.ServerHandshake;

public class WebSocketC extends WebSocketClient{
	
	/**
	 * 接受websocket服务端的值.
	 */
	private static String receiveData = null;
	
	/**
	 * 判断WebSocket是否打开.
	 */
	private static boolean isOpen = false;
	
	public WebSocketC(URI serverURI){
		super(serverURI,new Draft_17());
	}
	
	public WebSocketC(URI serverURI, Draft draft) {
		super( serverURI, draft );
	}

	@Override
	public void onClose( int code, String reason, boolean remote ) {
		// The codecodes are documented in class org.java_websocket.framing.CloseFrame
		System.out.println( "Connection closed by " + ( remote ? "remote peer" : "us" ) );
		isOpen = false;
	}

	@Override
	public void onError(Exception arg0) {
		// TODO Auto-generated method stub
		System.out.println("make mistakes");
	}

	@Override
	public void onMessage(String message) {
		// TODO Auto-generated method stub
		System.out.println( "received: " + message );
		isOpen = true;
		setReceiveData(message);
	}

	@Override
	public void onOpen(ServerHandshake arg0) {
		// TODO Auto-generated method stub
		System.out.println( "opened connection" );
	}
	
	public static String getReceiveData() {
		return receiveData;
	}

	public void setReceiveData(String receiveData) {
		WebSocketC.receiveData = receiveData;
	}
	
	public static boolean getWebSocketConnectionIsOpen(){
		return isOpen;
	}

	public static void main( String[] args ) throws URISyntaxException, InterruptedException {
		// more about drafts here: http://github.com/TooTallNate/Java-WebSocket/wiki/Drafts
		WebSocketC websocket = new WebSocketC( new URI( "ws://192.168.14.119:8090/loginVerify" ));
		if(!websocket.connectBlocking()){
			System.err.println( "Could not connect to the server." );
			return;
		}
		
//		while(true){
//			String value = getReceiveData();
//			if(value == null){
//				value =getReceiveData();
//			}else{
//				System.out.println(value+"__________________");
//				return;
//			}
//		}
		
		// 2秒后关闭
		Thread.sleep(2000);
		websocket.closeBlocking();
		
		boolean f = getWebSocketConnectionIsOpen();
		if(!f){
			WebSocketC websockets = new WebSocketC( new URI( "ws://192.168.14.119:8090/loginVerify" ));
			websockets.connectBlocking();
		}
		
	}
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值