java+websocket实现网页聊天室

核心技术websocket

前提

1、tocmat7.02版本以上

2、浏览器支持websocket通讯

3、这个是html5的功能


客户端和服务器建立连接

jsp/html页面

1、浏览器和后台服务器要通信,首先是url

通俗易懂的格式如下    "ws://localhost:8080/项目名/请求名"   

如果要携带参数的话, "ws://localhost:8080/项目名/请求名/"+参数 

 var target = "ws://"+window.location.host+"/LawerSys/websocket"+"/"+username;

2、与后台服务器建立连接
  var socket = new WebSocket(target);

Java后台部分

1、新建一个普通的类,在这个类上面加上@ServerEndpoint("/请求名");

这个"/请求名"与html中 "ws://localhost:8080/项目名/请求名"    请求名一致;

html页面与后台之所以可以建立的连接,就是根据@ServerEndpoint来识别websocket通讯类,根据("/请求名")和前台的请求相匹配的对应的类;

2、new 一个方法,来和前台建立连接,

 websocket通讯,浏览器和服务器只会建立一次连接,因此,我们需要在建立连接握手的时候,把这个会话存储到集合里面

 1、一般是用map集合,因为key是不能重复的

2、如果是List集合的话,无法区分是自己发的信息还是别人发的信息

3、集合存在意义,就是实现循环遍历转发给连接服务器的客户端浏览器页面

 但是我不能说open()这个方法是建立连接的它就连接的,需要标识@Onopen


 

注意:value可以是java类的类型

注意要有static关键字,如果没有这个关键字,添加集合的长度一直都是1;

原因是两个浏览器访问后台服务器,然后虽然执行了添加操作,但是执行结束,这个集合就销毁了,动态分配内存,所以需要static关键字;

 value也可以是Session,我试过这两个,都没有问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_37591637

请给我持续更新的动力~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值