Foxtable(狐表)用户栏目专家坐堂 → [分享]狐表CS集成WebSocket方法,替代OpenQQ常用功能


  共有31675人关注过本帖树形打印复制链接

主题:[分享]狐表CS集成WebSocket方法,替代OpenQQ常用功能

帅哥,在线噢!
ajie5211
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:820 积分:5641 威望:0 精华:1 注册:2015/11/28 14:00:00
[分享]狐表CS集成WebSocket方法,替代OpenQQ常用功能  发帖心情 Post By:2021/10/11 11:21:00 [显示全部帖子]

狐表的OpenQQ很好用,帮助非常完善,比着抄就可以用的很好了,基本上,登陆,改密码,控制不在线时自动锁定系统,独占编辑等都会用到这个。

但是现在宁波电信已开始通知以后不可以用IP直接连接网站、系统、应用等服务,为此我用nginx代理狐表做的网站,判断客户端是用IP在连接还是用域名在连接,IP的直接回403,域名连接的才转进来,这样就可以实现在外网访问时,只可用域名连接,在内网访问时,我可以不走代理,直接用内网IP去访问狐表做的网站, 网站搞定了,但是系统应用搞不定,因为OpenQQ采用的是UDP协议,而UDP协议是4层的,用nginx代理时,根本不会判应用层内容,只能做纯转发,这就无法达到最新的要求了,同时查了很多资料,UDP端口开放后容易被攻击,且按狐表帮助的说法,UDP端口要对外开放好多个,可不是一个。

为了合规,参考早睡早起的纯杰哥贴子http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158906&replyID=&skin=1,并在其指导下,采用WebSocket来取代了OpenQQ,目前已实现了控制登陆,改密码,不在线时自动锁定系统,独占编辑这个还没有开始做。源码共享出来,不足之处还请多指点。用最新的2022预览版做的,狐表旧版本可能打不开。


此主题相关图片如下:2.png
按此在新窗口浏览图片

此主题相关图片如下:1.png
按此在新窗口浏览图片


以下内容只有回复后才可以浏览

一次只能上传3个附件,还得来一次!

[此贴子已经被作者于2021/10/12 7:59:25编辑过]

 回到顶部
帅哥,在线噢!
ajie5211
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:820 积分:5641 威望:0 精华:1 注册:2015/11/28 14:00:00
  发帖心情 Post By:2021/10/11 11:21:00 [显示全部帖子]

 使用方法,D盘下建一个web文件夹,wjxxyth是数据库文件,导入SQL,我用的是SQL2016express,启动服务端,启动客户端,用户名admin密码admin

代码还是比较多的,我就懒的修改了,直接把我的正式项目放上来了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:wjxxyth.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:ws服务端.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:websocket-sharp.rar

效果展示


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:4.png
图片点击可在新窗口打开查看 


图片点击可在新窗口打开查看此主题相关图片如下:5.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2021/10/11 11:48:38编辑过]

 回到顶部
帅哥,在线噢!
ajie5211
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:820 积分:5641 威望:0 精华:1 注册:2015/11/28 14:00:00
  发帖心情 Post By:2021/10/11 11:22:00 [显示全部帖子]

我上面做的连接都没有带参数,是先连接上,然后才开始发信息登陆,其实连接是可以带参数的,按get的形式发送

客户端Functions.Execute("WsConnect","ws://127.0.0.1:9091/WsChat?token=35&kk=yugn")

服务端中内部函数WsUserLogged接收

'WebSocket客户端上线后的事件,知道登陆用户的ID,和其他数据
Dim ID As String =Args(0)
Dim Origin As String = Args(1) '客户端请求地址
Dim cqs As System.Collections.Specialized.NameValueCollection = Args(2) '通过 cqs("token")来获取value值,注意区分大小写,注意是否为Nothing

Functions.Execute("LogText","用户ID:" & ID & "连接上了,地址:" & origin & "token:" & cqs("token") & "更多参数:" & cqs("kk"))

cqs中有啥要跟你做get传参一样。

[此贴子已经被作者于2021/10/11 11:54:31编辑过]

 回到顶部
帅哥,在线噢!
ajie5211
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:820 积分:5641 威望:0 精华:1 注册:2015/11/28 14:00:00
  发帖心情 Post By:2021/10/11 11:25:00 [显示全部帖子]

占楼

 回到顶部