java websocket netty_用SpringBoot集成Netty开发一个基于WebSocket的聊天室

前言

基于SpringBoot,借助Netty控制长链接,使用WebSocket协议做一个实时的聊天室。

项目效果

项目统一登录路径:http://localhost:8080/chat/netty

用户名随机生成,离线调用异步方法,数据写操作,登录显示历史聊天消息

47d4591676362118a9a3fdfec6c11cb4.png

f3f44da425e29c8c72b753e0102b6f5c.png

GitHub

项目名:InChat

项目地址:https://github.com/UncleCatMy...

项目介绍:基于Netty4与SpringBoot,聊天室WebSocket(文字图片)加API调用Netty长链接执行发送消息(在线数、用户列表)、Iot物联网-MQTT协议、TCP/IP协议单片机通信,异步存储聊天数据

代码实操讲解

随机命名工具类

public class RandomNameUtil {

private static Random ran = new Random();

private final static int delta = 0x9fa5 - 0x4e00 + 1;

public static char getName(){

return (char)(0x4e00 + ran.nextInt(delta));

}

}

配置文件yml

spring:

datasource:

driver-class-name: com.mysql.jdbc.Driver

username: root

password: root

url: jdbc:mysql://localhost:3306/nettychat?characterEncoding=utf-8&useSSL=false

jpa:

show-sql: true

netty:

port: 8090 #监听端口

bossThread: 2 #线程数

workerThread: 2 #线程数

keepalive: true #保持连接

backlog: 100

数据库准备

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for user_msg

-- ----------------------------

DROP TABLE IF EXISTS `user_msg`;

CREATE TABLE `user_msg` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`msg` varchar(255) DEFAULT NULL,

`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4;

-- ----------------------------

-- Records of user_msg

-- ----------------------------

INSERT INTO `user_msg` VALUES ('1', '亪', '今天不开心', '2018-08-14 14:26:02', '2018-08-14 14:26:02');

INSERT INTO `user_msg` VALUES ('2', '祐', '不错呀', '2018-08-14 15:09:40', '2018-08-14 15:09:40');

INSERT INTO `user_msg` VALUES ('3', '搈', '开心 开心', '2018-08-14 15:09:40', '2018-08-14 15:09:40');

INSERT INTO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值