Java WebSocket客户端java WebSocketClient

该博客介绍了如何使用Java实现WebSocket客户端和服务器。`MsgWebSocketClient`类展示了如何建立WebSocket连接并处理握手、消息接收和错误。`WebClientEnum`枚举用于单例初始化客户端,并发送测试消息。`SocketClientEngine`启动主方法,创建并连接到指定服务器。
摘要由CSDN通过智能技术生成

一、java客户端实现代码

package ggmes.websocket.client;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.Iterator;

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;

public class MsgWebSocketClient extends WebSocketClient{

	public MsgWebSocketClient(String url) throws URISyntaxException {
		super(new URI(url));
		// TODO Auto-generated constructor stub
	}

	@Override
	public void onOpen(ServerHandshake shake) {
		// TODO Auto-generated method stub
		System.out.println("握手...");
		for(Iterator<String> it=shake.iterateHttpFields();it.hasNext();) {
			String key = it.next();
			System.out.println(key+":"+shake.getFieldValue(key));
		}
	}

	@Override
	public void onMessage(String paramString) {
		// TODO Auto-generated method stub
		System.out.println("接收到消息:"+paramString);
	}

	@Override
	public void onClose(int paramInt, String paramString, boolean paramBoolean) {
		// TODO Auto-generated method stub
		System.out.println("关闭...");
	}

	@Override
	public void onError(Exception e) {
		// TODO Auto-generated method stub
		System.out.println("异常"+e);
		
	}
}

二、单例初始化类:

package ggmes.websocket.pusher;

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

import ggmes.websocket.client.MsgWebSocketClient;
import ggmes.websocket.server.MsgWebSocketServer;
import utils.ObjectUtils;

public enum WebClientEnum {

	CLIENT;
	
	private static MsgWebSocketClient socketClient = null;
	
	public static void initClient(MsgWebSocketClient client) {
		socketClient = client;
		if(ObjectUtils.isNotNull(socketClient)) {
			socketClient.connect();
			socketClient.send("测试websocket。。。");
		}
		boolean flag = true;
		int i=1000;
		while(flag) {
			socketClient.send("测试websocket。。。"+(i--));
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			if(i == 0) {
				flag = false;
			}
		}
	}
	
}

三、启动主方法:

package ggmes.websocket.bootstrap;


import java.net.InetSocketAddress;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;

import ggmes.websocket.client.MsgWebSocketClient;
import ggmes.websocket.pusher.WebClientEnum;
import ggmes.websocket.pusher.WebServerEnum;
import ggmes.websocket.server.MsgWebSocketServer;
import play.mvc.Controller;

public class SocketClientEngine{


	public static void main(String[] args) {
		try {
			WebClientEnum.CLIENT.initClient(new MsgWebSocketClient("ws://192.168.152.73:8099"));
		} catch (URISyntaxException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值