solon.boot.jetty
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.boot.jetty</artifactId>
</dependency>
1、描述
通讯扩展插件,基于 jetty 的http信号服务适配。可用于 Api 开发、Rpc 开发、Mvc web 开发、WebSocket 开发。
支持信号:
信号 | 说明 |
---|---|
http | 默认端口 8080,可由 server.port 或 server.http.port 配置 |
ws | 端口与 http 共用 |
配套的二级插件:
插件 | 说明 |
---|---|
solon.boot.jetty.add.jsp | 增加 jsp 视图支持 |
solon.boot.jetty.add.servlet | 增加 servlet 扩展包支持 |
solon.boot.jetty.add.websocket | 增加 websocket 通讯支持(端口与 http 共用) |
2、应用示例
Web 示例:
public class DemoApp {
public static void main(String[] args) {
Solon.start(DemoApp.class, args);
}
}
@Controller
public class DemoController{
@Mapping("/hello")
public String hello(){
return "Hello world!";
}
}
WebSocket 示例:(需要添加 solon.boot.jetty.add.websocket 插件)
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]));
}
}
/*
ws://localhost:18080/hello/12?token=xxx
*/