solon.boot.websocket
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.boot.websocket</artifactId>
</dependency>
1、描述
通讯扩展插件,基于 Java-WebSocket 的 websocket 信号服务适配。可用于 Api 开发、Rpc 开发、WebSocket 开发。
支持信号:
信号 | 说明 |
---|---|
ws | 默认为主端口+10000(即 server.port + 10000) 或 server.websocket.port 配置 |
2、应用示例
public class DemoApp {
public static void main(String[] args) {
Solon.start(DemoApp.class, args, app->{
//启用 WebSocket 服务
app.enableWebSocket(true);
});
}
}
//
// 监听模式
//
@ServerEndpoint(path = "/hello/{id}")
public class WebSocketServerImp implements Listener {
@Override
public void onOpen(Session session) {
//path var
String id = session.param("id")
//query var
String token = session.param("token")
System.out.println("id: " + id + ", token: " + token);
}
@Override
public void onMessage(Session session, Message message) {
//message.setHandled(true); //设为true,则不进入mvc路由
session.send("我收到了:" + message.bodyAsString());
//接收二进制
//byte[] bytes = message.body();
//发送二进制
//session.send(Message.wrap(new byte[0]));
}
}
//
// 应答模式(可以用控制器开发)
//
@Controller
public class WebSocketController{
@WebSocket
@Mapping("/hello/{id}")
public String test(@Body String message){
return "我收到了:" + message;
}
}
/*
ws://localhost:18080/hello/12?token=xxx
*/