启动服务端
关于可配置细节,参考 “配置类” 的内容。
启动一个简单的服务端
使用具体的传输协议
,要导入对应的适配包。比如:sd:ws
,要导入 org.noear:socketd-transport-java-websocket
- 原生接口方式
public class Demo {
public static void main(String[] args) throws Throwable {
//创建监听器
Listener listener = new SimpleListener(){
@Override
public void onMessage(Session session, Message message) throws IOException {
System.out.println(message);
}
};
//启动服务
Server server = SocketD.createServer("sd:ws")
.config(c -> c.port(8602).sslContext(null)) //如果有 ssl 需要,添加 sslContext
.listen(listener)
.start();
//添加安全停止
Runtime.getRuntime().addShutdownHook(new Thread(()->{
RunUtils.runAndTry(server::stop);
}));
}
}
- Ioc 容器管理方式(假代码示意)
@Component
public class ListenerImpl implements Listener { //内置有多个不同功能的监听器,可借用
...
}
@Component
public class ServerLifecycle implements LifecycleBean {
private Server server ;
@Inject
private Listener listener;
@Override
public void start() {
server = SocketD.createServer("sd:ws")
.config(c -> c.port(8602))
.listen(listener)
.start();
}
@Override
public void stop() {
if(server != null) {
server.stop();
}
}
}
附:服务端接口
/**
* 服务端接口
*/
public interface Server {
/**
* 获取台头
* */
String getTitle();
/**
* 获取配置
* */
ServerConfig getConfig();
/**
* 配置
*/
Server config(ServerConfigHandler configHandler);
/**
* 监听
*/
Server listen(Listener listener);
/**
* 启动
*/
Server start() throws IOException;
/**
* 停止
*/
void stop();
}