# 各语言插件

# JS插件

JS插件是官方推荐使用的首选插件,编写代码少,并且很容易跨平台。
请参考JS插件

# PB插件

通过PB编写服务端代码,实现服务端的WebApi,支持H5,微信公众号和小程序等,支持PB断点调试功能。
查看pbtest插件配置如下: pluginpb 参数说明:

数据 说明
"Dir": "test" 表示插件的目录,所有插件都在plugins目录下面,这里值为”test”代表插件在plugins目录下的test目录
"Method":"Get;Post" 表示http调用的方法,可以为Get,Post,Any,Put,Delete中的一个或多个,多个以;分隔
"URL": "/pbtest/**" 表示响应以http://ip:port/pbtest开头的url。这里"/pbtest/**"可以响应http://127.0.0.1:5555/pbtest/test.go,也可以响应http://127.0.0.1:5555/pbtest/tttt.go等。如果设置为"URL": "/pbtest/test.go"则只响应http://127.0.0.1:5555/pbtest/test.go,可以配置多个url,多个url以;分隔
"Type": "pb" 表示调用PB插件
"DLL": "pbvm90.dll" 表示pb运行库的dll名称,这里是pb9的运行库,其它版本请自行设置。比如12.5运行库设置为"DLL": "pbvm125.dll"
"AppName":"plugin" 表示pb的application的名称,一定要和创建的pb的名称对应起来

# PB插件示例

请加群下载satrda最新版本,打开pb示例查看具体源码.

# DLL插件(Dephi,C++等编写dll)

使用Delphi、C++等编写标准的windows dll,实现服务端WebApi功能。 plugindll 参数说明:

数据 说明
"Dir": "dtest" 表示插件的目录,所有插件都在plugins目录下面,这里值为”test”代表插件在plugins目录下的test目录
"Method":"Get;Post" 表示http调用的方法,可以为Get,Post,Any,Put,Delete中的一个或多个,多个以;分隔
"URL": "/dtest/**" 表示响应以http://ip:port/dtest开头的url。这里"/dtest/**"可以响应http://127.0.0.1:5555/dtest/test.go,也可以响应http://127.0.0.1:5555/dtest/tttt.go等。如果设置为"URL": "/pbtest/test.go"则只响应http://127.0.0.1:5555/pbtest/test.go,可以配置多个url,多个url以;分隔
"Type": "dll" 表示调用dll插件
"DLL": "DPlugin.dll" 表示dll的名称
"AppName":"" 不需要使用

# DLL插件示例

插件的dll是标准的动态链接库,需要导出stdcall方式调用函数SatRDA_Service (注意:名称一定要是SatRDA_Service) 请加群下载satrda最新版本,打开delphi示例查看具体源码。

# COM插件(VB,C++,.NET等编写dll)

编写COM组件实现插件功能
配置如下: plugincom 参数说明:

数据 说明
"Dir": "vbplugin" 表示插件的目录,所有插件都在plugins目录下面,这里值为”vbplugin”代表插件在plugins目录下的vbplugin目录,com插件由于通过regsvr32注册到了注册表,这里可以不必要填写
"Method":"Get;Post" 表示http调用的方法,可以为Get,Post,Any,Put,Delete中的一个或多个,多个以;分隔
"URL": "/vbtest/**" 表示响应以http://ip:port/vbtest开头的url。这里"vbtest/**"可以响应http://127.0.0.1:5555/vbtest/test.go,也可以响应http://127.0.0.1:5555/vbtest/tttt.go等。如果设置为"URL": "/vbtest/test.go"则只响应http://127.0.0.1:5555/vbtest/test.go
"Type": "com" 表示调用coml插件
"DLL": "vbweb.dll" 表示dll的名称,由于是com插件需要注册,这里可以不填
"AppName":"vbweb.app" com加载的类名,通过这个名称找到对应调用的com组件

# .NET插件

编写标准的.NET dll作为插件 : 配置如下: pluginnet 参数说明:

数据 说明
"Dir": "dnettest" 表示插件的目录,所有插件都在plugins目录下面,这里值为”dnettest”代表插件在plugins目录下的test目录。
"Method":"Get;Post" 表示http调用的方法,可以为Get,Post,Any,Put,Delete中的一个或多个,多个以;分隔
"URL": "/dnet/**" 表示响应以http://ip:port/dnet开头的url。
"Type": "dotnet" 表示是.net插件
"DLL": "DotNetDll.dll" .net生成的dll
"AppName":"SatRDA.Plugin" 表示SatRDA命名空间下面的Plugin类, 类必须有一个静态方法Service,当指定的连接到达时会调用到方法。

# .NET插件示例

插件工程请看示例目录dotnet/DotNetDll下面的工程

# JAVA插件

通过JAVA语言编写插件 配置如下: pluginjava 参数说明:

数据 说明
"Dir": "java" 表示插件所在的目录,所有插件都在plugins目录下面,这里值为”java”代表插件在plugins目录下的java目录。把源码打包成jar并放在这个目录下面,插件会自动加载目录下面所有的jar文件
"Method":"Get;Post" 表示http调用的方法,可以为Get,Post,Any,Put,Delete中的一个或多个,多个以;分隔
"URL": "/java/**" 表示响应以http://ip:port/java开头的url。
"Type": "java" 表示是java插件
"DLL": "" 保持为空
"AppName":"com.satrda.Plugin" 表示com.satrda包下面的Plugin类, 类必须有一个静态方法Service,当指定的连接到达时会调用到方法。

# JAVA插件示例

插件工程请看示例目录java\plugin下面的工程

# H5插件

当我们开发完成一个前后端分离的h5应用之后,可能有一堆的html、js、css文件。虽然我们可以把它们直接放到satserver的public目录下面,或者配置H5插件的dir为目录,就完成了访问。但是这样意味着我们的程序源码直接部署到了服务器上,不利于知识产权的保护。我们可以通过satserver把所有文件打包成一个加密文件,把加密文件发布成h5插件解决这个问题。

# H5打包

如果需要打包d:/myweb目录中所有文件。可以按如下步骤:

  1. 在satserver.exe目录建立一个名为pack.bat批处理文件,输入以下内容并保存
satserver pack  d:/myweb  d:/myweb.bin
@pause
  1. 双击执行该文件

也可以在cmd进入satserver所在目录,输入satserver pack d:/myweb d:/myweb.bin

  1. 成功后,会生成d:/myweb.bin

# 插件配置

h5插件方便实现h5应用的部署 pluginh5

参数说明:

参数 必选 类型 说明
Dir yes string 打包的文件的路径,打包文件参考h5打包
Method yes string 表示http调用的方法,可以为Get,Post,Any,Put,Delete中的一个或多个,多个以;分隔
URL yes string "URL": "/h5test/"表示响应以http://ip:port/h5test开头的url
Type Yes string 选择h5表示是h5类型插件
允许跨域 Yes String 是否允许跨域访问