Socket.D v2.5.12

基于事件的(或路径、指令)

</> markdown

事件提供了消息路由的基础,可以极大简化通讯应用开发。也可以把事件想象成 “path”, “cmd” 等,以助理解。

1、事件格式

使用普通的“可见”字符串。格式可以是(但不限):

  • demo, demo.test
  • demo, demo:test
  • demo, demo-test
  • demo, demo/test

当然,我们使用得也别太花了!尽量用经典的风格

2、发送事件

发送事件

session.send("mq.subscribe", new StringEntity(""));
session.send("mq.publish", new StringEntity("hi"));

如果你不想要事件,发空事件即可

session.send("", new StringEntity("hi"));

3、监听事件

监听事件(是在 onMessage 事件基础上,基于 event 做的消息路由)

public class Server {
    public void main(String[] args) throws Throwable {
        SocketD.createServer("sd:tcp")
                .listen(new EventListener().doOn("mq.subscribe", (s,m)->{
                    //..
                }).doOn("mq.publish", (s,m)->{
                    //..
                }))
                .start();
    }
}

如果你不想要事件(也可以,总有对你味口的)

public class Server {
    public void main(String[] args) throws Throwable {
        SocketD.createServer("sd:tcp")
                .listen(new EventListener().doOnMessage((s,m)->{
                    //..
                }))
                .start();
    }
}

更多“监听器”的用法,参考后面的资料。