# socketd **Repository Path**: linziguan/socketd ## Basic Information - **Project Name**: socketd - **Description**: Socket.D 是基于连接和语义消息流的网络应用开发框架(类似于 http + websocket 的效果)。既是一种新的通讯应用协议,也是一个开发框架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 118 - **Created**: 2023-11-21 - **Last Updated**: 2023-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
基于连接和语义消息流的网络应用开发框架
交流群里,会提供 "保姆级" 支持和帮助。如有需要,也可提供技术培训和顾问服务
### 第一个程序:你好世界!
```java
public class Demo {
public static void main(String[] args) throws Throwable {
//::启动服务端
SocketD.createServer("sd:tcp")
.config(c -> c.port(8602))
.listen(new SimpleListener(){
@Override
public void onOpen(Session session) throws IOException {
//签权
if("1b0VsGusEkddgr3d".equals(session.param("token")) == false){
session.close();
}
}
@Override
public void onMessage(Session session, Message message) throws IOException {
//打印
System.out.println(message);
if(message.isRequest() || message.isSubscribe()){
//答复
session.replyEnd(message, new StringEntity("And you too."));
}
}
})
.start();
Thread.sleep(1000); //等会儿,确保服务端启动完成
//::打开客户端会话
Session session = SocketD.createClient("sd:tcp://127.0.0.1:8602/?token=1b0VsGusEkddgr3d")
.open();
Entity message = new StringEntity("Hello wrold!").meta("user","noear");
//发送
session.send("/demo", message);
//发送并请求(且,等待答复)
Entity response = session.sendAndRequest("/demo", message);
//发送并订阅(且,接收答复流)
session.sendAndSubscribe("/demo", message, stream->{
});
}
}
```