以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [分享]狐表CS集成WebSocket方法,替代OpenQQ常用功能  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=172402)

--  作者:ajie5211
--  发布时间:2021/10/11 11:21:00
--  [分享]狐表CS集成WebSocket方法,替代OpenQQ常用功能

狐表的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
--  发布时间: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
--  发布时间: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
--  发布时间:2021/10/11 11:25:00
--  
占楼
--  作者:有点蓝
--  发布时间:2021/10/11 11:28:00
--  
多谢分享!
--  作者:cbt
--  发布时间:2021/10/11 12:27:00
--  
多谢分享!

--  作者:blackzhu
--  发布时间:2021/10/11 12:29:00
--  
看下
--  作者:aix
--  发布时间:2021/10/11 12:32:00
--  
 学习
--  作者:ycli368
--  发布时间:2021/10/11 13:55:00
--  
厉害
--  作者:wei0769
--  发布时间:2021/10/11 14:00:00
--  
多谢分享