springboot 集成 smart-socket
因项目场景需要,项目中需集成socket, 经过架构讨论觉得使用smart-socket。
一:springboot集成smart-socket
1:pom导入jar包
<dependency>
<groupId>org.smartboot.socket</groupId>
<artifactId>aio-core</artifactId>
<version>1.5.1</version>
</dependency>
2:配置文件增加端口
smartSocket:
port: 8083
3:编写协议工具
4:编写Config文件
获取端口,启动bean服务
5:编写数据协议类
6:编写消息处理器
功能编写完成本地通过8083端口进行访问,访问成功之后部署服务器,服务器存在于docker中使用了两种部署方式,分别如下:
二:docker-compose部署
1:docker-compose.yaml配置文件中增加端口映射
nginx:
ports:
- "8088:8088"
2:nginx配置文件中支持socket转发
低版本先配置支持stream模块 添加参数:–with-stream
高版本直接配置stream,stream要和services同级
stream {
#监听socket端口
server {
proxy_connect_timeout 5s;
proxy_timeout 20s;
listen 8088;
proxy_pass nurse_dev_web_api:8088;
}
}
三:指令部署
通过docker run运行的服务
1:项目部署在有浮云上,云端开放端口
登录云,在云服务器中找到指定服务器,找到安全组,配置出入站规则。
2:NAT网关配置端口转发
打开私有网络,找到NAT网关,点击网关名称,打开端口转发,把内部端口转换为外网可访问的端口
部署成功之后需要测试
四:服务测试
1:项目服务运行,启动socket
2:项目服务成功之后本地telnet测试
3:点进去命令行输入测试数据,服务器响应成功
4:测试数据发现响应失败,原因可能是服务启动失败