网络聊天室
# PinToo之网络聊天室
# 1. 说明
通过 PinToo 连接至 FastWeb 中的 IsoBean 模块,实现网络聊天室的功能。
通过范例学习,可以掌握 RestAPI 与 WebSocket 控件的使用方法,并与 FastWeb 的 IsoBean 结合实现网络聊天室的功能。
关于 IsoBean 的相关内容可参考 Bean通讯 与 IsoBean开发流程 。
# 2. 设计明细
开启PinToo设计器,分别加入下插图之控件。或者点击左上角的[打开模板Lib文件]
选择模板文件来打开对应模板。

1:TfxIsoBeanServer 组件,控件名称为 fxIsoBeanServer1
。
2:TfxIsoBeanSource 组件,控件名称为 fxIsoBeanSource1
。
3:TfxIsoBeanVision 组件,控件名称为 fxIsoBeanVision1
。
4:TfxLabel 组件,控件名称为 fxLabel1
。
5:TfxLabel 组件,控件名称为 fxLabel2
。
6:TfxEdit 组件,控件名称为 fxEdit2
。
7:TfxEdit 组件,控件名称为 fxEdit3
。
8:TfxRestAPI 组件,控件名称为 fxRestAPI1
。
9:TfxSuperButton 组件,控件名称为 fxSuperButton1
。
10:TfxWebSocketClient 组件,控件名称为 fxWebSocketClient1
。
11:TfxSuperButton 组件,控件名称为 fxSuperButton2
。
fxRunFrame属性设置
Height
:设置页面高度=800
。Width
:设置页面宽度=400
。
1:fxIsoBeanServer1属性设置
Server
:设置IsoBean服务器的地址以下的内容假设服务器的地址为http://192.168.0.157:8888/
。UserKey
:设置用户授权码,授权码为用户的唯一ID。
2:fxIsoBeanSource1属性设置
IsoBeanServer
:设置绑定的IsoBeanServer,设置为IsoBeanServer1
。
双击控件,打开编辑器,在IsoBean编号中输入
IB_ab-vis-0001_m_chatroom
,点击[从服务器下载参数]
,将参数下载至本地。点击[确定]
关闭对话框。3:fxIsoBeanVision1属性设置
Active
:是否激活显示。设置为True
。IsoBeanSource
:设置绑定的IsoBeanSource控件,设置为IsoBeanSource1
。
4:fxLabel1属性设置
Text
:设置标签显示的文本,设置为用户名
。
5:fxLabel2属性设置
Text
:设置标签显示的文本,设置为消息
。
6:fxEdit2属性设置
Text
:设置编辑框中默认显示的文本,设置为demo
。
7:fxEdit3属性设置
Text
:设置编辑框中默认显示的文本,设置为Hello PinToo
。
8:fxRestAPI1属性设置
双击打开属性设置框,参照以下内容进行设置,设置完成后点击
[OK]
按钮保存设置。9:fxSuperButton1属性设置
ButtonType
:设置按钮显示的类型,设置为TfxSvgButton
。SvgData
:设置SVG图形定义文本。
<path d="M18.2318115234375,55.998046875 L81.798828125,29.4990234375 L18.2318115234375,3 L18.201171875,23.6104431152344 L63.6279525756836,29.4990234375 L18.201171875,35.3876037597656 Z" p-id="2051" fill="#FF2C2C2C" stroke="Null"></path>
1Text
:设置按钮上显示的文字,设置为API发送
。
10:fxWebSocketClient1属性设置
Host
:设置连接的 WebSocket 主机的地址,设置为192.168.0.157
。Port
:设置连接的服务器端口号,设置为8805
。Options
:设置选项。Parameters
:设置参数,设置为/message
。
11:fxSuperButton2属性设置
ButtonType
:设置按钮显示的类型,设置为TfxSvgButton
。SvgData
:设置SVG图形定义文本。
<path d="M18.2318115234375,55.998046875 L81.798828125,29.4990234375 L18.2318115234375,3 L18.201171875,23.6104431152344 L63.6279525756836,29.4990234375 L18.201171875,35.3876037597656 Z" p-id="2051" fill="#FF2C2C2C" stroke="Null"></path>
1Text
:设置按钮上显示的文字,设置为WS发送
。
# 3. 程序设计
点击程序设计界面右下角的按钮,切换至单元选择界面,勾选需要使用的单元。该程序需引用 ufxRestAPI
与 uWebSocketClient
。
- fxRunFrame-OnAfterRunScript事件
程序初始化设置,连接至目标网页的 IsoBean 界面,启用 WebSocket 客户端
Procedure fxRunFrameAfterScriptRun(Sender: TObject);
Begin
fxWebSocketClient1.Active := True;
End;
2
3
4
- 10:fxWebSocketClient1-OnConnect事件
WebSocket客户端连接后,注册会话ID。
Procedure fxWebSocketClient1OnConnect(Connection: TsgcWSConnection);
Begin
fxWebSocketClient1.SendMsg('{"action":"login","sid":"pintoodemo"}');
End;
2
3
4
- 9:fxSuperButton1-OnClick事件
点击 [API发送]
按钮,调用API发送消息。
Procedure fxSuperButton1OnClick(Sender: TObject);
//API发送消息
var
msg: String;
begin
msg := '{' +
'"username": "demo",' +
'"action": "callback",' +
'"tag": "0",' +
'"data": {' +
'"callbackcomponent": "ab-vis-0001_m_chatroom",' +
'"callbackeventname": "update",' +
'"callbackparams": [' +
'{' +
'"paramname": "user",' +
'"paramvalue": "' + fxEdit2.Text + '"' +
'},' +
'{' +
'"paramname": "message",' +
'"paramvalue": "'+ fxEdit3.Text + ' By RestAPI"' +
'}' +
']' +
'}' +
'}';
fxRestAPI1.Body.Text := msg;
fxRestAPI1.Send;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
- 11:fxSuperButton2-OnClick事件
点击 [WS发送]
按钮,调用 WebSocket 发送消息。
Procedure fxSuperButton2OnClick(Sender: TObject);
//WS发送
var
msg: String;
begin
msg := '{' +
'"username": "demo",' +
'"action": "callback",' +
'"tag": "0",' +
'"data": {' +
'"callbackcomponent": "ab-vis-0001_m_chatroom",' +
'"callbackeventname": "update",' +
'"callbackparams": [' +
'{' +
'"paramname": "user",' +
'"paramvalue": "' + fxEdit2.Text + '"' +
'},' +
'{' +
'"paramname": "message",' +
'"paramvalue": "'+ fxEdit3.Text + ' By WebSocket"' +
'}' +
']' +
'}' +
'}';
fxWebSocketClient1.SendMsg(msg);
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 4. 运行结果
使用鼠标在 PinToo 菜单,点击[保存至数据库]
按钮,将其保存至数据库,点击[调试运行]
确认能够正常打开。
通过同步中心,将程序上传至手机PinToo运行;同步时,请确保手机已经运行PinToo,并且已经登陆。
打开页面,IsoBean运行,分别点击 [API发送]
与 [WS发送]
,可查看运行的状态。
