Socket.D 小场景.消息鉴权模式 (v2)
本案在消息上报模式的基础上增加签权为例演示:
1、服务端
//启动服务端
public class ServerApp {
public static void main(String[] args) {
//启动Solon容器(Socket.D bean&plugin 由solon容器管理)
Solon.start(ServerApp.class, args, app -> app.enableSocketD(true));
}
}
//定义服务端监听
@ServerEndpoint("/")
public class ServerListener extends SimpleListener {
@Override
public void onOpen(Session session) throws IOException{
System.out.println("有客户端链上来喽...");
if("1".equals(session.param("sn")) && "1".equals(session.param("token"))){
System.out.println("鉴权通过!");
}else{
session.close();
}
}
@Override
public void onMessage(Session session, Message message) throws IOException {
//业务处理
System.out.println("服务端:我收到:" + message.dataAsString());
}
}
2、客户端
public class ClientApp {
public static void main(String[] args) throws Throwable {
//启动Solon容器(SocketD bean&plugin 由solon容器管理)
Solon.start(ClientApp.class, args);
//创建会话(如果后端是WebSocekt,协议头为:sd:ws)
ClientSession session = SocketD.createClient("sd:tcp://localhost:28080?sn=1&token=1").open();
//上报消息
session.send("demo", new StringEntity("Helloworld server!"));
}
}