logo
0
0
WeChat Login
修订文案

PYunAPI SDK C#

版本更新

[v1.2.1.0] - 2024/03/20
  • 心跳默认需要应答, 若6s未收到心跳应答主动关闭链接并重建立连接。
[v1.2.0.2] - 2022/04/29
  • 支持输出认证请求并优化打包。
[v1.2.0.0] - 2020/04/18
  • 支持拦截请求用于自定义解析, 重写AbstractServiceAPI->HookRequest方法。
[v1.1.0.6] - 2019/10/04
  • 支持设置厂商信息;
  • 支持手动/自动设置当前主机名称及IP。
[v1.1.0.4] - 2019/06/08
  • 修复极端情况无法重链的问题。

开发环境

属性
IDEVS2010
平台工具集.NET 2.0

文件清单

  • 4pyun-api.dll

用法

1. 实现AbstractServiceAPI

在抽象类AbstractServiceAPI中定义类目前所有接口中定义方法的回调函数, 具体接口参数可参考接口文档定义。

2. 实现ChannelEventHandler

当底层TCP连接建立、授权结果反馈时该事件会被触发, 事件类型有:

项定义说明
ChannelEventType.AccessGrantedAPI授权成功
ChannelEventType.AccessDeniedAPI授权失败
ChannelEventType.ChannelErrorTCP连接异常
ChannelEventType.ChannelClosedTCP链接关闭

3. 创建PYunAPI对象

// PYun服务器地址, 根据开通参数设置 string host = "sandbox.gate.4pyun.com"; // PYun服务器端口, 根据开通参数设置 int port = 8661; PYunAPI instance = new PYunAPI(host, port); // 设置终端类型 instance.Type = "public:parking:agent"; // 设置通信事件处理回调处理类 instance.ChannelEventHandler += new EventHandler<ChannelEventArgs>(ChannelEventHandler); // 设置业务接口处理回调类 instance.ServiceHandler = new PYunServiceAPIImpl();

4. 启动服务

// PYun分配当客户端ID, 根据开通参数设置 string uuid = "foo"; // PYun分配当客户端通信密钥, 根据开通参数设置 string mac = "mac"; // 启动服务 instance.Startup(uuid, mac);

通过调用Startup方法底层SDK会开启线程和PYun服务器保持一个TCP长连接, 并支持会自动重连; 连接的状态通过ChannelEventHandler中监听处理。

5. 停止服务

instance.Shutdown();

通过调用Shutdown方法会关闭底层TCP连接线程。

6. 重启服务

instance.Restart();

通过调用Restart方法会关闭底层TCP连接线程, 然后重新建立连接, 连接的状态通过ChannelEventHandler中监听处理。

附录

A. 多终端设置

默认P云一个项目只允许保持一个有效TCP连接用于数据通信, 为兼容部分系统厂商暂时提供多终端的解决方案, 该方案允许各个终端设置自己的device用于区分不同的终端。

在停车场景, device需设置为当前通道口ID, 设置方法如下:

// [可选]设置设备ID, 仅在多终端模式下设置 instance.Device = "98K";