六、WebSokcet 客户端开发 (v2)
此内容 v2.6.0 后支持
1、Java 使用示例
开发 WebSocket 客户端,借助一个小工具 java-websocket-ns:
<dependency>
<groupId>org.noear</groupId>
<artifactId>java-websocket-ns</artifactId>
<version>1.1</version>
</dependency>
在 org.java-websocket 框架的基础上,加了点小便利:简化,心跳,自动重连,心跳定制。另外提醒:客户端的关闭使用 release()
替代 close()
。release()
会同时停止心跳与自动重连!
public class ClientApp {
public static void main(String[] args) throws Throwable {
//::启动客户端
SimpleWebSocketClient client = new SimpleWebSocketClient("ws://127.0.0.1:18080") {
//需要什么方法,就重写什么
@Override
public void onMessage(String message) {
super.onMessage(message);
}
};
//开始连接
client.connectBlocking(10, TimeUnit.SECONDS);
//开始心跳 + 心跳时自动重连
client.heartbeat(20_000, true);
//发送测试
client.send("test");
//休息会儿
Thread.sleep(1000);
//关闭(使用 release 会同时停止心跳及自动重连)
client.release();
}
}
2、Javascript 使用示例
js 的原生 websocket 接口,没有自动心跳与断线重连,需要开发者自己处理。建议采用别的包装框架,或者升级为 socket.d 协议(带自动心跳与重连)
<script type="text/javascript">
let client = new WebSocket("ws://127.0.0.1:18080/demoe/websocket/13?guid=2");
client.onmessage = function (s, ev) {
//加业务代码
}
client.onerror = function (s, ev) {
}
//测试发送
client.send("hi");
</script>