很久没来搞研究了,这几天研究了webscoket,代码有点乱就不上传了,写一下怎么做的,。
灵感来源:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158906&replyID=&skin=1
1.打开多个浏览器
此主题相关图片如下:37c064e4d2b3bf139c047cd5cbdd1e4.png
2.修改其中一个浏览器表格中的数据
3.多个浏览器里面实时更新
此主题相关图片如下:10f2882dc592783af802c0825bd6c9c.png
实现步骤
1:弄会杰哥的例子
2:服务端启动webscoket
3:设计一个带登录用户密码的登录系统(例如周老师的那个layui的订单系统),打开浏览器登录系统自动连接webscoket服务(这个很简单,把连接的代码直接写在JS中,这样刷新后也会重连。有更好的解决方法)
如何解决后端认证、断线重连、心跳
1.解决认证,网页上连接webscoket的时候带上参数(注意用?连接参数),这个document.cookie.toString(),是页面的cookie(第一次登录系统的时候后端要保存好),后端可以获取。
websocket = new WebSocket("ws://127.0.0.1:9091/WsChat?" + document.cookie.toString());
后端获取cookie代码
Dim cqs As System.Collections.Specialized.NameValueCollection = Args(2)
Dim Tok As String = cqs("token")
利用这个获取的cookie可以在系统登录去找是否存在这个cookie,不存在就单个踢下线。
2.断线重连、心跳
这部分代码网上很多,可以结合刷新不掉线一起做。
如何实现layui表格任意单元格实时更新
1.前端的更改通过webscoket的send(msg)方法给后端发更改后的数据。
2.后端收到是更新的数据后群发该信息
3.前端收到群发信息后(自己解析),关键是用js选择器选中layui表格任意单元格,然后用JQ的.text方法给单元格从新赋值。
[此贴子已经被作者于2023/6/25 9:39:48编辑过]