Solon v2.7.5

六、WebSokcet 客户端开发 (v2)

</> markdown

此内容 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>