# netty-mqtt-server **Repository Path**: JoeLian/netty-mqtt-server ## Basic Information - **Project Name**: netty-mqtt-server - **Description**: mqtt协议的netty实现 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2018-07-22 - **Last Updated**: 2024-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # netty-mqtt-server ## 启动 ``` bash mvn assembly:assembly nohup java -jar netty-mqtt-server.jar & ``` ## 测试 功能调试目前使用 * tcp协议:[Mqtt.fx](http://www.jensd.de/apps/mqttfx/1.7.0/) * websocket协议: [paho-mqtt](https://github.com/eclipse/paho.mqtt.javascript) ## SSL nginx配置(websocket) ``` nginx http { server { listen 443; server_name server_xxxx;//域名 ssl on; root html; index index.html index.htm; ssl_certificate cert/xxx.pem;//证书 ssl_certificate_key cert/xxx.key;//证书 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:18000; # websocket端口 proxy_read_timeout 60s; proxy_set_header Host $host; proxy_set_header X-Real_IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'Upgrade'; } } } ``` nginx配置(tcp) ``` nginx stream { server { listen 10443 ssl; ssl_certificate cert/xxx.pem;//证书 ssl_certificate_key cert/xxx.key;//证书 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL2:10m; proxy_pass 127.0.0.1:8000;//tcp端口 } } ``` ## 协议实现参考文献 * http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#qos-flows * https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/0301-CONNECT.html