Socket.D 多频道监听 (v2)
Socket.D 是基于 url 连接的(这个跟 websocket 有点像),频道即指连接时的 path。监听多频道,就是给不同的 path 安排不同的监听处理。比如:
- 我们有个用户频道("/")
- 还有,管理员频道("/admin/")
在 Solon 的集成环境里,我们可以使用 "ServerEndpoint" 注解方便实现多频道监听:
@ServerEndpoint("/")
public class WebSocketDemo extends SimpleListener {
@Override
public void onMessage(Session session, Message message) throws IOException {
session.send("我收到了:" + message.dataAsString());
}
}
@ServerEndpoint("/admin/")
public class WebSocketDemo extends SimpleListener {
@Override
public void onMessage(Session session, Message message) throws IOException {
session.send("你是管理员哦:" + message.dataAsString());
}
}
然后,我们把("/mvc/")频道,转成 mvc 接口:
@ServerEndpoint("/mvc/")
public class WebSocketAsMvc extends ToHandlerListener {
}
//可以 Mvc 开发了
@Controller
public class HelloController {
@Socket //不加限定注解的话,可同时支持 http 请求
@Mapping("/demo/hello")
public Result hello(long id, String name) { //{code:200,...}
return Result.succeed();
}
}