Java服务端模拟websocket客户端建立长链接之---WebSocketClient

    最近项目里需要在Java服务端与c++进行websocket通信,java_websocket.client.WebSocketClient插件很好的解决了这个需求。

   首先需要在pom.xml文件中引入此依赖:

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

Java代码如下:

import org.apache.log4j.Logger;
import org.java_websocket.WebSocket;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft_6455;
import org.java_websocket.handshake.ServerHandshake;

import com.cn.service.impl.SearchPersonServiceImpl;

import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;


public class WebsocketClient {
	
    private static Logger logger = Logger.getLogger(WebsocketClient.class);
    public static WebSocketClient client;
    public static void main(String[] args) {
        try {
            client = new WebSocketClient(new URI("ws://192.168.4.100:8080/project/websocket"),new Draft_6455()) {
                @Override
                public void onOpen(ServerHandshake serverHandshake) {
                	 logger.info("握手成功");
                }

                @Override
                public void onMessage(String msg) {
                	 logger.info("收到消息=========="+msg);
                	 if(msg.equals("over")){
                		 client.close();
                	 }
                	 
                }

                @Override
                public void onClose(int i, String s, boolean b) {
                	 logger.info("链接已关闭");
                }

                @Override
                public void onError(Exception e){
                    e.printStackTrace();
                    logger.info("发生错误已关闭");
                }
            };
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }

        client.connect();
        logger.info(client.getDraft());
       while(!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
    	   logger.info("正在连接...");
        }
       //连接成功,发送信息
	client.send("哈喽,连接一下啊");
       
    }
	
}


	




猜你喜欢

转载自blog.csdn.net/cxfly957/article/details/79296932