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

本文介绍如何使用 Java-WebSocket 库实现 Java 服务端与 C++ 的 WebSocket 通信。通过在 pom.xml 中添加依赖并提供 Java 代码示例,展示了如何创建客户端、连接到服务器、发送和接收消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近项目里需要在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("哈喽,连接一下啊");
       
    }
	
}


	




评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值