SmobilerService 是一款功能强大的服务端托管提供程序。
在帮助您承载 Smobiler 应用服务端的同时,还额外提供 “推送服务”、“路由中转”、“黑白名单管理”、“运营分析” 等其他常用的增值服务。
功能 |
社区版 |
标准版 |
专业版 |
企业版 |
简介 |
备注 |
---|---|---|---|---|---|---|
服务运行 | √ | √ | √ | √ | 应用服务端将以 Windows 服务的方式运行 | / |
应用管理 | √ | √ | √ | √ | 应用托管,设置启动页等基础选项 | / |
日志管理 | √ | √ | √ | √ | 记录并查询应用的运行、异常日志 | / |
路由中转 | √ | √ | √ | √ | 接替内网移动设备向云平台发起认证,由此移动端可在纯内网中完成启动 | / |
推送服务 | * | * | √ | √ | 向设备进行消息推送,内网与外网均可送达 | 社区版与标准版限制推送设备的总数量,社区版为3台,标准版为10台 |
应用监护 | √ | √ | √ | 时时守护进程,发现程序异常退出,立即自动重启 | / | |
安全管理 | √ | √ | 黑白名单策略,有效控制客户端设备连接 | / | ||
客户端管理 | √ | √ | 查看当前已连接设备,并踢出指定的设备 | / | ||
客户端监控 | √ | 查看当前已连接设备,并实时监控客户端当前界面 | / | |||
运营分析 | √ | 新增、活跃用户统计,应用启动总量统计 | / | |||
升级更新 | 永久免费 | 永久免费 | 永久免费 | 永久免费 | 激活后有效期为永久,后续升级更新完全免费 | / |
收费策略 | 免费 | ¥999.0/应用 | ¥9999.0/应用 | 电话报价 | / | / |
1.完全免费的社区版:
社区版完全免费,提供给初级开发者、Smobiler 开源项目参与者和个人使用。包含路由中转和消息推送功能。
2.全新的路由中转功能:
App 在启动时需要向 Smobiler 云平台发起验证并获取服务器地址,但完全处于内网中的设备无法完成此任务。借助 Service 路由中转,由 Service 代替手机端向云平台进行验证,便可轻松的实现 APP 内网启动。
3.向更低版本开放了消息推送功能:
社区版、标准版现在也具备了推送服务这一常用功能,你无需集成第三方的推送服务即可实现消息的内外网推送。但同时考虑到专业版用户的权益,目前,向社区版和标准版开放的推送服务设有限制:社区版可以向 3 台固定的设备无限次推送消息,而付费的标准版则将这一限制提升到了 10 台,二者均不支持推送全体消息。 此外,专业版与企业版仍旧不受任何限制,推送全体消息也同样收到支持。
使用你的云平台账户登陆Smobiler云平台,点击任意你期望托管在SmobilerService上的应用进入此应用的管理页。在页面中央位置,即可开始准备使用SmoiblerService服务。
激活社区版
社区版完全免费,因而不支持也无需支持试用,点击应用界面下方的“免费激活并下载”即可永久免费获得。 社区版供初级开发者、Smobiler 开源项目参与者和个人使用,同时可继续获得后续的所有更新和 Bug 修复。
现在,您已经拥有了社区版的 ServiceKey 激活码生成权限。
如果您已安装了 Service ,则可以立即点击 “前往 ServiceKey 生成页面” 兑换 ServiceKey 激活码;如果您尚未安装 Service ,则“前往 SmobilerService 下载页面”按钮能够引导你跳转到指定的下载页面获取 SmobilerService。(请注意总是获取版本号最新的 Service 安装包)
有关于 ServiceKey 的具体兑换过程以及如何使用的说明,您可以在稍后的“在 Service 上创建你的第一个应用”获得详细介绍。
试用付费版
付费的版本(标准版、专业版、企业版)提供免费试用。个人用户 30 天,企业用户 120 天。
从 Service 创建应用界面生成机器特征码 RequestKey ,然后在云平台点击你所希望试用版本下方的“试用”按钮,即可跳转生成激活 Key 的界面。使用机器码 RequestKey ,即可兑换试用码。
特别注意:
您可先试用标准版,再试用专业版。二者共享试用时长,例如:企业用户试用时长为 120 天,那么试用 30 天标准版后再继续试用专业版,则专业版试用天数为 90 天。
另外:
1. 每个版本仅可试用1次,即仅能生成一次ServiceKey。ServiceKey一旦成功生成,则代表此版本的试用立即开始。
2. 试用标准版的用户可以继续申请试用专业版,但已在专业版试用中的用户无法回退到标准版试用申请。
1. 点击希望购买的 SmobilerService 版本下的“购买”按钮跳转至 Smobiler 商城相应的购买界面。将产品加入购物车后付款结算,则您能够立即在邮箱中收到来自 Smobiler 授权系统发送的邮件,其中包含的激活码,即可用于您的 SmobilerService 产品激活。
2. 进入您希望使用 SmobilerService 托管的应用,点击“激活付费版”按钮跳转到激活页面。输入您购买的产品激活码并点击查询,如果激活码正确,此时应当显示激活码可供激活的版本,以及激活按钮。点击激活,完成您的 SmobilerService 产品激活,以获得产品的永久使用资格。
3. 激活成功后您会跳转回应用管理界面。此时,SmobilerService 服务已永久可用。
1. 通过默认账户admin,密码admin,登陆SmobilerService服务。
2. 通过点击主页右上方的绿色“新增”按钮,弹出创建应用对话框。
其中涉及的相关选项的用途与值限制如下表所述:
选项名称 |
用途 |
相关限制 |
---|---|---|
应用名称 | 应用运行在SmobilerService上的名称与标识。 | 注意,在当前版本中(1.0.0)中未设定校验,但此项必须为英文大写或小写字母。无需与云平台一致。 |
应用版本 | 应用的内核版本。 | 提供下拉选单,选项为诸如“4.7”的版本号数值。 |
应用路径 | 您的应用服务端程序dll文件输出时选择的路径。 | 您必须将Smobiler应用服务端的生成选项修改为类库,才可使用SmobilerService托管。 |
ServiceKey | 用于激活当前应用的激活码,请在填写应用名称与版本后点击生成按钮下载RequestKey文件后,到Smobiler云平台进行兑换。RequestKey包含当前计算机唯一识别符和应用相关信息的文本,这也意味着您只能在生成RequestKey的计算机上使用对应的ServiceKey。 | 生成RequestKey前必须首先填写应用名称与版本,因为文本中将包含以上两项信息。 |
自动运行 | 该应用是否在SmobilerService每次启动时自动运行。 | 当ServiceKey过期后无法再次自动启动。 |
如何将Smobiler应用服务端的生成选项修改为类库?
此前您习惯采用.exe程序运行Smobiler服务端(还记得那个大大的二维码窗口吗?),在SmobilerService上托管该应用时,您需要略微对您已有的项目进行输出调整,使其输出为.dll类库文件(而非默认的Windows应用程序),才可在SmobilerService上正常运行。
请右击您的Smobiler服务端项目,选择属性,然后如图进行简单调整并保存,最后重新生成项目即可:
另外,当您完成了后续的试用或购买步骤成功创建了应用后,请记得将SmobilerService应用设置下的入口程序集、起始界面设定为适合您上述应用的值,托管应用才会开始正常运行(下图为托管Smobiler示例程序 时设定的值示例):
生成ServiceKey
所有版本生成 ServiceKey 的方法一致,均在云平台应用管理界面通过点击 “生成 ServiceKey” 按钮开始准备生成,如下图所示:
执行以上步骤后,你可以看到类似以下的界面:
粘贴你从 SmobilerService 创建应用界面获取的 RequestKey 进行兑换,即可获得由云平台生成的 ServiceKey。
复制此Key,并在SmobilerService创建应用时填写到ServiceKey一项中进行授权验证,如果验证有效,你即可成功在SmobilerService上创建托管应用的服务端管理程序。
注意:
1. ServiceKey 使用包含机器硬件序列号等特征码的 RequestKey 兑换,因而只能在生成 RequestKey 的机器上激活。
2. 付费版本的试用 Key 仅能生成一次,且仅支持在一台计算机上使用。生成后为避免遗忘,我们提供了查看历史生成记录的功能,但试用 Key 无法重新生成 。
应用设置
应用设置分为基础设置与监护设置。
基础设置可对Smobiler服务端的相关配置进行设定,例如你的应用服务端将占用的HTTP端口与TCP端口等。
监护设置可对SmobilerService守护应用正常运行的进程进行配置,例如重连操作次数的上限、监控处理的超时时间等。
路由中转
通常 Smobiler 手机端应用在启动时会向云平台(cloud.smobiler.com)拉取服务器地址,并执行必要的验证以完成连接。但在纯内网环境下,要求完全脱离公网的设备将无法完成此任务。
借助路由中转功能, SmobilerService 将接替你的设备来向云平台发起认证并获得路由信息,由此,处于内网的设备无需连接公网即可立即启动。
注意:
1. 您账户下的 SmobilerService 需处于可用状态(试用中/永久激活),与此同时,只有当云平台打包界面的内核版本选择 >=4.8 时,通用配置项“SmobilerService 服务器地址”才能够通过打包系统的验证(否则会收到相关错误提示)。打包成功后,此功能自动启用。打包有“SmobilerService 服务器地址”的设备在启动时,会优先连接 Service 请求接替验证,如果请求失败,才会通过公网向云平台直接发起认证请求。
2. 此项功能需要您开放 SmobilerService 所在服务器的公网访问权限才可使用(至少应当开放 https://api.smobiler.com 以及 https://dns.smobiler.com)。当服务器未开放公网权限时,路由中转界面会显示如下提示信息:
3. 此项功能从 Smobiler 4.8 起开始支持,低于此版本的应用无法使用。请在云平台打包应用时选择内核版本 >=4.8 的版本号(含 alpha 版本)进行打包。
客户端管理和监控
踢除设备:
您可通过客户端管理功能查看当前连接到服务器的设备编号,并可通过点击指定设备编号后的“Kill”按钮对客户端进行踢除操作。被踢除的设备将会立即与服务端断开连接,不再显示界面并展示连接中断的提示信息。
设备监控:
通常此功能被用于便利开发者排查一线用户的应用异常问题或引导用户正确使用应用的某项功能。您可通过点击设备管理界面中,相应设备编号后的“Moniter”按钮,在 SmobilerService 中实时显示此设备的屏幕画面。当某些错误发生时,开发者可通过应用监控实时观看用户进行的操作演示,以便于高效的重现错误排查问题,或纠正用户不当的操作方式,而不必前往一线操作现场。
设备监控功能为SmobilerService企业版特有功能。
安全管理
用户可以通过安全管理控制可以访问应用的用户群体,或者限制指定用户禁止访问应用。
通过选择安全模式并点击保存按钮,即可开始添加设备。其中,设备编号可在SmobilerService客户端管理中进行查询。
黑名单模式:
黑名单模式将允许所有用户访问应用,而排除已在名单中的设备。
白名单模式:
白名单模式将禁止所有用户访问应用,而仅向已在名单中的设备开放。
通过推送服务,您可快速将信息推送至指定的设备,或推送给安装有此应用的所有设备。
点击应用管理界面中的“推送服务”按钮,即可显示推送操作界面。在 Service 1.1 中,推送服务在设定合理限制的情况下,被下降到社区版、标准版中。而由于限制不一,不同版本的 Service 在打开此功能时,界面也会有所差别。
专业版、企业版的界面如下所示:
社区版、标准版的界面如下所示:
由于推送服务程序已内置在 SmobilerService 服务引擎中,因而无论其设备通过公网 IP 还是局域网 IP 与您的服务器进行连接,推送消息均可准确送达,而不依赖其他第三方服务。
当 APP 收到推送时,通知会以两种不同的方式显示。
左侧为用户未使用应用时的推送提示,右侧则为用户正在使用应用时的推送提示:
你也可以通过代码推送:
用户界面手动操作起来虽然友好,但通常都是低效的。作为开发者,使用代码推送让一切变的自动化并且更加高效也许是更好的选择。推送功能支持调用 smobiler.service.push 库直接进行代码级的推送调用。
这里以创建一个简单的控制台程序为例。
1. 在 Visual Stuido 中使用 .Net Framework 4.5 新建控制台程序:
2. 为控制台程序添加 NuGet 包引用,安装 Grpc 1.17.0 :
3. 继续为控制台程序添加 Smobiler.Service.Push.dll 的库引用:
4. 最后使用以下简单代码初始化 PushClient 并指定相关参数,即可完成推送:
C#: class Program { static void Main(string[] args) { PushClient client = new PushClient("YourServiceHostAppName"); MessageResult result = client.Push("标题", "消息的内容。", "0514871126521", "489425163782", "14589952365"); Console.WriteLine("推送成功,消息编号:" + result.MessageID); Console.ReadKey(); } }
其中构造函数填入的 "YourServiceHostAppName" 是你在 Service 中创建此应用时使用的名称,而非 APP 应用在云平台创建时使用的名称。
Push 服务会根据该应用名称来查询对应激活的 Service 版本,以此来判断你是否确实具有调用这些功能的权限。
不论使用何种推送,记得打包 “smo_push”插件:
插件Value填写“服务器地址:推送端口号”:
默认的推送端口为1883,可以系统设置中修改
日志
您可通过日志功能查看Smobiler生成的运行日志,便于您在程序出现异常时进行问题排查。
进程日志:托管当前服务的进程所产生的日志。
应用日志:您的应用服务端产生的日志。
应用Sys日志:您的应用服务端产生的详细系统日志。需要在SmobilerService应用设置功能中,启动“记录系统日志”功能。
客户端日志:您的移动端APP在连接服务端进行操作时所产生的日志。需要在SmobilerService应用设置功能中,启动“记录客户端操作日志”功能。
特别提示:
当日志内容过长时,一次性返回会导致性能问题。由于SmobilerService暂不支持分页和搜索功能,为避免这种情况的发生,目前在执行查询操作发现文件内容过长时,会直接向您返回文件,以便在您的计算机上使用适当的工具进行关键词搜索与查找。
ServiceKey
此功能用于向您显示当前应用在SmobilerService上托管的授权信息。
您可通过点击橙色的“更换ServiceKey”按钮便捷的在各个版本的ServiceKey之间无缝升级,而无需删除应用后,再在创建应用的界面使用新的ServiceKey重新创建。
需要注意的是,ServiceKey到期后,如果应用仍处于运行状态,SmobilerService不会立即停止它的运行,而会继续助力您的应用发挥卓越表现,以保证在此关键时刻,您的客户仍能获得高效的服务体验。
而一旦您停止应用,则下一次启动时,SmobilerService不会再继续放行此应用。此时,您需要购买SmobilerService正式版并更换至新的正式版ServiceKey方可继续使用SmobilerService托管您的应用。
运营分析
SmobilerService集成了云平台中的运营分析功能,并在数据易读性和功能易用性上再次做出大幅改进,您现在能够更加轻而易举的掌握您的应用运营动向。
统计概览:
此页面显示三个有关您应用的重要统计。
用户数量:统计当前已连接过的设备总数,以及昨日新增的设备总数。
活跃用户(昨日):统计昨日启动过应用的设备总数,以及相较于前日,昨日新增的活跃用户数量。
启动次数:统计应用累计的启动总数,以及昨日新增的启动数量。
以上三个统计项点击详情按钮可下方视图中显示精确到每小时的数据。
用户新增历史、用户活跃历史、应用启动历史:
顾名思义,他们对上述内容的历史数据提供查询服务。
支持快速查询:7天 / 14天 / 30天
也可按照自定义区间查询:由您决定查询的历史区间。
额外需要您留意的是:
考虑到SmobilerService运营统计所需分析的数据量远不及Smobiler云平台的海量启动数据,因而我们采用的是实时统计策略而非定时任务。因而如果您的用户群体极其庞大,启动此页面可能会存在1~2秒左右的延迟,同时历史查询的自定义区间选择越长,相应的也能够导致统计时间增加,但应当均在数秒以内完成,请耐心等待。
Service1.1 采用了新的激活码 Key 格式设计,这主要是为解决某些程序耦合问题而作出的决定。因而 Service1.0 时生成的 Key 现已无法正确激活 Service 1.1 。
但请放心,对于已购买 Service 并正在使用 Service 1.0 的用户,我们已提供了应对方案:
现在,当你进入 ServiceKey 生成界面时,默认生成的是最新版本的 Key 。但在界面末尾,你仍旧能够看到我们为 1.0 保留的 Key 生成入口:
对正在试用的用户也提供了应对方案:
由于 ServiceKey 在试用时只能生成 1 次,之后便仅能查看生成记录,因而此前生成的 1.0 Key 现已无法体验新版本。
所以我们为试用中的用户转化了旧版本的 Key ,现在,当你查看试用码时,便能发现两个页签,供你在 1.1 和 1.0 版本的 Key 之间自由切换:
特殊情况:
为避免使用 Service 1.0 的用户在升级到 Service1.1 后,由于旧格式的 Key 仍然存在于系统中,导致程序无法解析出现启动异常立即退出的问题,当检测到尝试解析的 Key 为 1.0 版本后,我们已自动为这些 Key 激活为免费的社区版,以保证应用的正常运行。
对于此种类型的用户,请及时前往云平台免费更换最新版本的 Key 。造成不便,恳请谅解。
1. 如何重置 Smobiler Service 密码?
删除安装目录\server\rpc\Config\Users\User.conf 文件即可将密码重置为 admin 。
2. 进行保存等其他操作时出现 "UserSession null" 的错误提示
退回 SmobilerService 登陆页面,重新登录即可解决。
出现此问题的原因,通常是用户停留在系统的某一页面,且长时间未进行任何操作,导致服务器认为该用户已和服务器失去连接,从而清除了登陆信息,此时保存等操作被认为是无效的。大部分情况下,系统会在跳转过程中“拦截”登陆信息过期的用户,并自动重定向回登录页。但目前为止,部分无需通过页面 跳转即可完成的操作,未能顺利重定向而是提示了登陆超时的异常。我们会在未来的版本中解决这一问题。
3. "对路径的访问被拒绝"
出现此问题的原因,通常是 Service 的网站程序未得到足够授权,而与此同时,受托管的应用处于系统盘 C:/ 盘,导致保存等需要读写文件的操作出现权限不足。
你可以将托管的目标应用移出系统盘,从而降低读写文件所需的权限;或按照如下图所示的步骤为 Service 网站的应用程序池提升权限,使其有足够的权限修改处于系统盘的文件:
4. 部署 Service 网站程序后,使用浏览器访问直接显示网站目录而非登陆页面
1) 下载 .Net Framework 4.5 及以上版本并安装。
下载地址: .Net Framework 4.5.2 - Microsoft Download Center
2) 然后确认 “控制面板” → “添加和删除程序” → “启用和关闭 Windows 功能” → “Internet Information Services” 中“应用程序开发功能”下的子项被全部安装(特别是 ASP.NET 4.5 以上版本的正确安装):
这一问题通常是由服务器 .Net Framework 版本过低,不支持 Service 网站程序所使用的技术框架所致。
如果确认已安装了 .Net Framework 4.5 但问题依然存在,请在 \Smobiler Service\Web 目录下,使用记事本打开 web.config 文件,并在文件末尾适当修改节点下的配置节,增加属性 runAllManagedModulesForAllRequests="true":
<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> </system.webServer>
完成以上安装即可正确展示登录页。
5. "启用和关闭 Windows 功能" 中没有 "Internet Information Service"
1) 部分操作系统版本中,这一选项也被译为中文 “Internet 信息服务”,它与 "Internet Information Service" 完全一致。
2) 非正版操作系统的安装镜像,为最大程度压缩体积,可能会移除 Internet Information Service 等诸如此类仅在服务器上使用的程序,导致 Windows 功能中没有以上选项。
对于第二种情况请尝试下列多种解决方案中的一种:
a. 下载 IIS Express ,作为 IIS 的替代选项来托管 SmobilerService 网站程序。IIS Express 具备与 IIS 一致的核心功能,经测试也可正常运行 SmobilerService 网站程序,但托管步骤与 IIS 有所不同,具体教程可从 IIS Express 官方或搜索引擎获取。(当前暂无反馈表明有用户使用此替代选项,因而文档中暂不会包含相关教程)
b. 使用更为完整的操作系统镜像,重新安装操作系统。
c. 购买并激活 Windows 正版,然后使用 Windows 更新程序将系统升级至最新版本后重试。
6. 自定义 SmobilerService 安装位置
在启动安装程序,到达选择“安装类型”界面时,注意选择“自定义(S)”而非默认的“完整安装”,继续点击下一步即可。
注意:
由于安装程序仅包含 SmobilerService 一个程序,因而自定义安装时只要不取消功能选框中的 "Smobiler_Service_Files" 功能,程序即可在自定义目录的情况下完整安装,不会缺失功能。 此选项仅建议高级用户使用,如果你不确定,请直接使用默认的“完整安装”,并点击下一步即可完成安装。
7. 推送功能无法正常运行
1) 确认 APP 中已打包 “smo_push” 插件:
2) 并确认该插件的推送服务的地址选项被正确配置为 “服务器地址:推送端口号”:
另外:
使用开发版 Smobiler 应用扫码连接,所启动的应用为测试版,不会收到推送。
当应用在客户端上未启动或未后台运行时,不会收到推送。
8. 访问 SmobilerService 登陆界面时不显示样式且无法登陆
SmobilerService 为提升使用体验,与互联网现行的绝大部分网站一样,使用了大量的 CSS 层叠样式表和 JavaScript 脚本文件,并引入 jQuery 作为前端辅助开发库,还会向服务器发送 Ajax 请求在页面无需刷新的状态下进行数据保存和展示。
这一现象通常发生在使用 Windows Server 服务器上自带的 IE 浏览器访问 SmobilerService 时(如图所示服务器自带 IE 启动了诸多复杂的增强安全配置):
请尝试以下解决方案中的一种:
最简单的方式是建议直接换用 Chrome 浏览器,或其他新式浏览器访问 SmobilerService。
如果必须使用服务器 IE,你也可以尝试为服务器自带的 IE 浏览器,降低安全策略防护等级,并允许运行 JavaScript 脚本。操作步骤如下所示:
完成以上操作后,需要重启服务器,然后即可再次尝试访问 SmobilerService 登录页。如果问题仍然无法解决,请继续尝试降低 IE 的其他安全配置策略直至问题得到解决。
9. 应用启动数秒后因未知原因退出
有时应用启动后会出现闪退,刷新运行状态时,应用状态由“正在运行”重新回到“停止运行 - process not found ”状态,且日志文件中显示 “应用因未知的原因已停止运行” 。
解决:
根据我们为此类异常用户的故障排除经验,目前已知的可能性原因有以下几点,请逐一检查:
a.未使用最新的 SmobilerDesigner 生成项目文件。(旧版本的 SmobilerDesigner 不支持生成适用于 Service 托管的应用类库文件);
b.端口号已被占用。此情况需要在 Service 应用托管界面的 “应用设置” 菜单中修改应用的 HTTP\TCP 端口后重新启动,或关闭已占用此端口的应用程序。
c.确认确实将应用作为了 “类库” 文件输出(后缀名为 .dll ),并正确的拷贝了所有的输出文件,且在 Service 中设置的正确的应用路径、入口程序集、启动主界面。
如果问题没有得到解决,请联系 Smobiler 技术支持人员获得协助,或等待后续新版本 Service 更新。目前,我们确实接收到少量用户的反馈,在完成以上操作后 SmobilerApp 服务端依旧无法拉起,原因暂未查明,我们会尝试在未来的版本中解决这个问题。
10. 100:远程服务器返回错误:(409)冲突
目前部署在阿里云上可能会出现此问题 ,该问题正在排查中。