因项目场景需要,项目中需集成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服务
smartSocket:
port: 18908

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:测试数据发现响应失败,原因可能是服务启动失败

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐