导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2023/9/18 12:06:02
标题:
Delphi Cross Socket 重大更新(2023.09.18)
浏览:1793
加入我的收藏
楼主:
https://github.com/winddriver/Delphi-Cross-Socket 主要更新内容 2023.09.18 支持 FPC 3.3.1 支持 OpenSSL 3.x 新增 HTTP 客户端 ICrossHttpClient 新增 WebSocket 客户端 ICrossWebSocket 部分代码重构 一些小问题修正
----------------------------------------------
-
作者:
szlbz (秋风)
★☆☆☆☆
-
盒子活跃会员
2023/9/18 14:46:15
1楼:
强
----------------------------------------------
-
作者:
kwer (★★★★★)
★☆☆☆☆
-
普通会员
2023/9/18 15:06:30
2楼:
不知道是否支持 FPC 3.2.2
----------------------------------------------
==========-==========-==========-==========-========== 多隆, 给我备一匹最快的马, 我有事要走先~~~ ==========-==========-==========-==========-==========
作者:
szlbz (秋风)
★☆☆☆☆
-
盒子活跃会员
2023/9/18 15:32:39
3楼:
@souledge lazarus 2.3.0 fpc 3.3.1 编译demo出错
----------------------------------------------
-
作者:
2023/9/18 16:19:28
4楼:
FPC好像是从3.2.6才支持匿名函数,DCS中很多地方用到了匿名函数,所以建议至少用FPC 3.2.6以上的版本 楼上编译报错具体什么错误
----------------------------------------------
-
作者:
szlbz (秋风)
★☆☆☆☆
-
盒子活跃会员
2023/9/18 16:23:00
5楼:
Net.SocketAPI.pas(635,6) Error: Identifier not found "TMarshaller" Net.SocketAPI.pas(708,19) Error: Identifier not found "TPtrWrapper"
----------------------------------------------
-
作者:
szlbz (秋风)
★☆☆☆☆
-
盒子活跃会员
2023/9/18 16:24:08
6楼:
fpc的demo都编译不了(lazarus 2.3.0 fpc 3.3.1)
----------------------------------------------
-
作者:
kwer (★★★★★)
★☆☆☆☆
-
普通会员
2023/9/18 16:46:50
7楼:
@szlbz 一看就是编译器开关都没有理顺,,,看看是在哪个单元
----------------------------------------------
==========-==========-==========-==========-========== 多隆, 给我备一匹最快的马, 我有事要走先~~~ ==========-==========-==========-==========-==========
作者:
2023/9/18 16:54:48
7楼:
没道理啊,这两个都是rtl自带的类型,TMarshaller是SysUtils单元里定义的,TPtrWrapper是System单元里定义的,我感觉是你的FPC有点问题 建议用 fpcupdeluxe 在新目录重新生成一套 FPC + Lazarus 的环境试试
----------------------------------------------
-
作者:
2023/9/18 16:57:51
8楼:
另外顺带提一下,这次更新增加了一个Utils.Hash单元,该单元需要依赖CnVCL,CnVCL自行从GitHub上拉取吧
----------------------------------------------
-
作者:
2023/9/18 23:16:08
9楼:
太棒了,这是我用过的最好的http,socket,websocket控件
----------------------------------------------
18114532@qq.com
作者:
2023/9/19 14:50:54
10楼:
@souledge 能不能搬运到网盘上?github.com打不开,感谢感谢
----------------------------------------------
-
作者:
2023/9/19 16:35:31
11楼:
太棒了,这是我用过的最好的http,socket,websocket控件
----------------------------------------------
-
作者:
2023/9/19 18:00:29
12楼:
太棒了,这是我用过的最好的http,socket,websocket控件
----------------------------------------------
虽千万人吾往矣!
作者:
2023/9/19 18:05:54
13楼:
楼主威武!
----------------------------------------------
-
作者:
2023/9/19 21:05:38
14楼:
Commits on Sep 18, 2023
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
2023/9/19 23:56:01
15楼:
留名做标识,好东西。
----------------------------------------------
-
作者:
2023/9/20 11:15:50
16楼:
目前发现开启ssl的情况,偶尔会出现 SSL_read error 1,也就是 SSL_ERROR_SSL 用 WebSocketServer + WebSocketClient 这两个 demo 测试就能偶尔出现 请有 ssl 开发经验的朋友也帮忙看看这个问题应该如何解决,希望大家能帮我一起完善DCS,感谢
----------------------------------------------
-
作者:
2023/9/20 13:25:55
17楼:
我们用delphi做HTTP server时,在生产中,用得最多的是,返回生产数据,就是从数据库里面查询后,返回json数组给查询方,但是几乎很少看到如何使用数据库返回的文章,在http server里面返回,是个多线程的过程,到底应该如何使用控件,如何使用数据库控件,也很少这方面的资料。光是返回几个文字,在生产上有什么用?
----------------------------------------------
-
作者:
2023/9/20 13:41:04
18楼:
能返回文字就能返回数据集数据,多线程使用数据库,保证每个线程有自己的独占连接基本上就没啥问题,怎么写怎么返回怎么组织数据集大家需求都不一样,demo意义不大
----------------------------------------------
-
作者:
2023/9/20 13:41:38
18楼:
请教一下,如果用这个做大并发量的接收和下载文件服务器,是否可行?
----------------------------------------------
-
作者:
421 (421)
★☆☆☆☆
-
盒子活跃会员
2023/9/20 14:51:02
19楼:
@huangxing (gx) 使用楼主的DCS,可以多线程处理的 1、接收到查询json后,给AHandled赋值True,把查询json里添加Connection.UID 2、在客户端的超时时间内交给在其他线程或者转发到接口处理 3、数据处理完成后通过UID查找到客户端使用Connection.Response.Json(data)返回就行了
----------------------------------------------
-
作者:
2023/9/20 15:00:22
20楼:
我们在生产上,使用httpserver,使用动态生成数据库连接,动态生成数据库控件,用FDConnection和FDQuery1控件,每次都create,感觉始终不是很稳定,运行一段时间后就会卡死,生成的数据库控件每次都free或者nil 了的,但是如果长时间运行,就会报错,而且不管用什么都捕捉不到这个错误,就是弹一个什么0000的错误,软件就停止运行了。也许是我的软件做得不是很好。
----------------------------------------------
-
作者:
2023/9/20 15:06:01
21楼:
我用http server控件,接收数据,我就是把数据先保存进一个字符串数组里面,然后再把这个数组的,数据,在一个timer里面保存进数据库,这样长时间运行,软件都会死掉。 比如在CommandGet时间中,来一条数据,就写: for I := 1 to 400 do begin if GetHisString[I]='' then begin GetHisString[I]:=ARequestInfo.Params.text; break; end; end; 这样,然后在timer里面保存一条数据,就让数组清空一条 如: if GetHisString[I]=<>'' then begin 保存进数据库; GetHisString[I]:=''; end; 就这样的一个过程,一天下来,软件都会死掉,真的不知道怎么处理,关键你还捕捉不到它什么异常,就是软件不动了。停在哪里了。哪个timer也不触发了。
----------------------------------------------
-
作者:
421 (421)
★☆☆☆☆
-
盒子活跃会员
2023/9/20 15:21:20
21楼:
长时间运行出现问题内存泄漏可能性比较大,不想每次都创建释放可以使用数据连接池,简单的连接池可以使用坛子里另外一个大神的QDAC组件,里面有个QSimplePool,借助作者的例子很容易实现,处理了OnNewItem和OnFree,使用pop和push借和还
----------------------------------------------
-
作者:
421 (421)
★☆☆☆☆
-
盒子活跃会员
2023/9/20 15:26:12
22楼:
@21楼 你们的生产环境数据量应该比较小,这样处理很慢的 这样处理软件死掉我猜原因是读写数据时候没锁定造成的
----------------------------------------------
-
作者:
cxg417 (cxg417)
★☆☆☆☆
-
盒子活跃会员
2023/9/20 15:34:29
23楼:
有没有使用说明文档?
----------------------------------------------
-
作者:
2023/9/20 21:56:15
24楼:
使用最新的cross socket,delphi编译linux64程序报错,见附图。老版没有问题。
此帖子包含附件: 大小: 33.4K
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
作者:
2023/9/20 22:07:11
25楼:
Commits on Sep 20, 2023
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
2023/9/21 9:40:33
26楼:
编译Utils.Hash报少文件,看起来使用了CNVCL里的东东
----------------------------------------------
-
作者:
2023/9/21 10:21:41
27楼:
顶一个,这个项目我做服务端一直在用。
----------------------------------------------
武稀松http://www.raysoftware.cn
作者:
2023/9/21 11:41:48
27楼:
@hnxxcxg 抱歉,没有测试Delphi-Linux的编译,我这边Linux程序基本是用FPC编译的,已经修正提交了 @wg961423 Utils.Hash的确需要依赖CnVcl,前面我已经提过了,可以自己去GitHub拉取
----------------------------------------------
-
作者:
2023/9/21 11:43:57
28楼:
@wr960204 武大是业内大牛,关于ssl的问题,能否帮忙参详参详?
----------------------------------------------
-
作者:
2023/9/21 15:20:19
29楼:
能不能搞一个mqtt的server
----------------------------------------------
-
作者:
2023/9/25 8:46:37
30楼:
httpclient不能连接自签名的服务器,可否添加一个忽略证书检查的属性了?
----------------------------------------------
-
作者:
2023/9/25 9:50:08
32楼:
我升级到楼住的前几天发布的最新版本,编译所有demo 都报这个错误.目标系统是ubuntu 22.04 ,大哥们帮我分析分析下原因.我比较着急
此帖子包含附件: 大小: 132.2K
----------------------------------------------
-
作者:
bdl1 (bdl1)
▲▲▲▲▲
-
普通会员
2023/9/25 10:29:55
33楼:
赞一个!
----------------------------------------------
-我的博客
作者:
2023/9/25 20:51:51
34楼:
32楼好像是没安装Linux支持一样。
----------------------------------------------
-
作者:
2023/9/26 14:10:07
35楼:
@jwj76 , 官方要求的那个zlib库ubuntu更新好了啊,这个更新版之前的那个最新版,我编译LINUX程序正常的啊
----------------------------------------------
-
作者:
2023/9/28 11:13:18
36楼:
相见恨晚,之前因为只支持openssl的1.0.1x版本,Mac上怎么都装不好低版本又找不到直接能用的dylib,只好在mac上面下载那个版本源码编译出.o文件来静态连接,还好照样运行稳定,而且不用多带dll不依赖mac环境,现在服务端开发都是用的这个组件,稳得一批,还可以跟Win和Mac的桌面端共用代码,爽得狠呐。 期待MQTT服务端和客户端支持。
----------------------------------------------
-
作者:
2023/9/28 12:02:19
37楼:
MQTT倒是可以考虑,不过大致翻了下官方的协议文档,还是比较复杂,暂时没有那么多时间去搞,等以后有时间研究下 再次呼吁一下,大家一起帮忙解决下 openssl 部分不稳定的问题,目前通过 abs或bombardier 压测 HttpServer 发现会出现 SSL_read 错误,一旦该错误出现,本来已经握手完成的 ssl 居然会变回未握手状态,导致无法继续正常通讯
----------------------------------------------
-
作者:
2023/9/28 14:25:08
38楼:
Commits on Sep 27, 2023
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
2023/9/28 22:22:53
39楼:
是不是证书验证失败。如果关闭证书验证,还会出现SSL_read错误吗
----------------------------------------------
-
作者:
2023/9/29 23:59:48
40楼:
使用了几年很不错,但是最近的升级稳定性大幅下降,错误也多。不能稳定正常使用还是先退回老版本
----------------------------------------------
-
作者:
2023/9/30 4:09:53
41楼:
太棒了,这是我用过的最好的http,socket,websocket控件
----------------------------------------------
只有偏执狂才能生存!