欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用satrda实现即时通讯

程序员文章站 2022-07-13 14:51:21
...

通过satrda的消息通讯模块,PB,VB,Delphi,JS等各种语言可以实现客户端之间或客户端与网页之间的相互通讯,消息通讯基于WebSocket协议,可用于实现即时提醒和互发消息。消息通讯单服务器可以支持数十万并发连接。

实现方法

1.下载SATRDA

最新版本和示例可在QQ群:345559891 下载

 

2.运行服务端

运行示例server目录下面的satserver.exe

3.源码

PB源码(参考pb示例中w_push窗口)

//连接服务端
uo_client.of_start("127.0.0.1:5555","user1;user2")

//发送消息
uo_client.of_publish( "user1", "发送消息测试")

//停止
uo_client.of_stop()

VB源码(参考vb示例中form2窗口)

//连接服务器
Client.StartClient "127.0.0.1:5555","user1;user2"

//发送消息
Call Client.Publish("user1", "发送消息测试", LenB("发送消息测试"))

//停止服务
Client.StopClient

Delphi源码(参考delphi示例中unit1窗口)

//连接服务器
PushClient_Start(_client,PAnsiChar('127.0.0.1:5555'),PAnsiChar('user1;user2'));

//发送消息
PushClient_Pulish(_client,PAnsiChar('user1'),PAnsiChar('发送消息测试'), length('发送消息测试'));

//停止服务
PushClient_Stop(_client);

易语言

.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 消息通讯, 消息通讯类
.程序集变量 旧窗口回调函数, 子程序指针

.子程序 _打开_被单击

消息通讯.开启 (编辑框_服务器.内容, 编辑框_订阅主题.内容)

.子程序 _停止_被单击

消息通讯.停止 ()

.子程序 _发送_被单击

消息通讯.发送消息 (编辑框_发送主题.内容, 编辑框_消息.内容)

.子程序 __启动窗口_创建完毕

消息通讯.设置事件 (取窗口句柄 ())
附加到页面 (取窗口句柄 ())
旧窗口回调函数 = 替换窗口回调 (取窗口句柄 (), -4, &新窗口回调函数)


.子程序 新窗口回调函数, 整数型
.参数 窗口句柄_, 整数型
.参数 消息, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型
.局部变量 收到消息, 文本型

.判断开始 (消息 = #消息通讯_状态)
    .如果真 (参数1 = #状态_正在连接)
        加入日志 (“正在连接”)
    .如果真结束
    .如果真 (参数1 = #状态_正在关闭)
        加入日志 (“正在关闭”)
    .如果真结束
    .如果真 (参数1 = #状态_已连接)
        加入日志 (“已连接”)
    .如果真结束
    .如果真 (参数1 = #状态_已关闭)
        加入日志 (“已关闭”)
    .如果真结束

.判断 (消息 = #消息通讯_事件)
    收到消息 = 消息通讯.取消息 (参数1, 参数2)
    加入日志 (到文本 (收到消息))
.默认

.判断结束
' 下面调用原来的回调来处理其它消息,去掉就假死
返回 (执行原窗口回调 (旧窗口回调函数, 窗口句柄_, 消息, 参数1, 参数2))



.子程序 加入日志
.参数 日志, 文本型

编辑框_显示.内容 = 编辑框_显示.内容 + 日志 + #换行符

 

4.运行显示界面

使用satrda实现即时通讯

说明

服务端地址:填写连接服务器的ip和端口号本机默认是127.0.0.1:5555

订阅主题:表示客户端想要接收的主题,多个以;分隔

比如:user1;user2表示user1和user2的主题消息都能接收

发送主题:需要发送的主题

发送消息:发送的内容

在浏览器中输入 http://127.0.0.1:5555/websocket.html 可以打开示例的网页界面,界面和应用程序的界面差不多。

websocket.html文件可以在server/public目录下面找到

5.消息通讯

在应用程序和网页中点击连接,并发送消息,可以验证互相通讯

使用satrda实现即时通讯

使用satrda实现即时通讯

 HTTP推送消息

可以通过Http Get方法进行推送,url如例

http://127.0.0.1:5555/pushmessage?topic=user1&message=11234234

topic表示主题

message表示要推送的消息