先分享连个测试联通性的地址
http://www.blue-zero.com/WebSocket/
http://coolaf.com/tool/chattest
如上,提供了简易的服务端,可以测试验证下自己的客户端是否可以连接上服务端,服务端会将发送的消息返回给客户端。
用的是maven管理jar包依赖,所以需在pom文件中添加如下依赖
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-Websocket</artifactId>
<version>1.3.8</version>
</dependency>
尝试过网上的各种版本的jar,从1.3.0~1.4.0,发现只有1.3.8版本好用。
废话不多说,直接贴代码:
package org.sang.wschat.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 java.net.URI;
import java.net.URISyntaxException;
public class WebsocketClient {
private static Logger logger = LoggerFactory.getLogger(WebsocketClient.class);
public static WebSocketClient client;
public static void main(String[] args) {
try {
client = new WebSocketClient(new URI("ws://121.40.165.18:8800"),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("哈喽,连接一下啊");
}
}
应该是本地创建好之后,直接就可以运行。
需要说明一点的是:
client = new WebSocketClient(new URI("ws://121.40.165.18:8800"),new Draft_6455())
代码中这个地址,也就是文章开头中,两个测试服务端的开源地址,仅仅是用来测试自己服务端的连通性。
运行结果如下:
不经常上CSDN,如有问题,请关注公众号:晚安烟雨城