moonrailgun:上一次推广: /t/708243
项目背景
除了传统的聊天软件,还有为固定需求打造的定位其他的聊天软件
比如钉钉立足于工作流,slack 专注于程序员之间的项目沟通。而TRPG Engine
就是一款为了小众的跑团玩家所打造的通用即时通讯解决方案
项目亮点
- 基于 XML 描述的人物卡系统(可以理解为动态表单) - Playground
- Web 端与 RN 端共享 redux 状态的实践与工具链
- 多端并存与代码共享(Web 端, RN 端, Portal 端 (Portal 端是 RN 端通过 webview 进行一部分中间操作的方式,类似于各种手机 App 的 H5 端) )
- 其他的一些自研实用工具,如
RN 端 WEB 端通用 Portal 组件
,快速生成通用表单
,基于 BBCode 的消息解释器
,通用缓存管理机制
- 工程化代码,可拓展性强
- 移动端兼容与 PWA
依赖
- MySql 5.7+
- Redis
功能列表
通用功能
- 用户登入登出
- 用户注册
- 私聊 /群聊
- 头像上传与裁剪
- 用户设置
- 好友管理
- 好友发送邀请 /同意邀请
- 基于 BBCode 的消息解析器
- url 内容
- 图片内容
- @提及
- 多种消息类型
- 通用消息
- 提示消息
- 卡片消息
- 消息回复与消息撤回
- 自动抓取消息内的网址的预览信息
- 基于 slate 的富文本编辑器
- 消息通知
- 移动端基于
upush
。包括本地进程未被杀死的本地推送与本地被杀死后的 upush 推送
- 移动端基于
- 多种文件管理策略
- 头像上传七牛云或本地
- 聊天图片使用外置图片服务转发到第三方图床
- 聊天文件存储在本地,定时删除
- 单向聊天消息机器人
- 群组多面板
- 多面板类型: 目前有笔记面板与文字频道
- 面板的编辑 /删除 /拖拽排序
- app 热更新与 apk 更新
- 热更新基于自部署的
codepush
服务器, apk 更新会自动获取最新的 apk 版本
- 热更新基于自部署的
- app 下载管理
- 多国语言(中英, 尚未完全覆盖)
跑团相关
- 基于 Slate 的笔记系统
- 人物卡系统
- 基于 XML 的布局描述与内置 JS 沙盒解释器来解释 js 脚本
- 人物卡的切换与切换时发送消息变换头像与名字
- 人物卡分享与 Fork
- 投骰表达式与消息拦截器
- 输入时向所有人发送输入状态
- 在线招募系统
线上监控
- 计划任务记录
- 接口耗时统计
- 请求限流
- 系统日志: 日志会被转发到
loggly
或本地记录。其他的操作相关会存储到数据库- 用户登录记录
- 机器人记录
- 投骰记录
- oss 文件记录
- 登录 /注册统计汇总
- 前端后端错误汇报
项目规模
- 开发时间: 3 年
- 所用数据表: 61 张
- 功能完整的多端:
- 两版网页端
- 基于 React Native 的安卓端
预览
在线地址: https://trpg.moonrailgun.com/
开源地址: https://github.com/TRPGEngine/Client
chinvo:其实……完全可以用 xmpp 的,xmpp 支持自定义消息,只要写客户端的部分就行
moonrailgun:@chinvo 只写客户端有什么好处么。
xmt328:我需要一个大佬带着玩,还需要足够的朋友来陪我玩
TRPG Engine —— 一个功能完善即时通讯解决方案moonrailgun:上一次推广: /t/708243 项目背景 除了传统的聊天软件,还有为固定需求打造的定位其他的聊天软件 比如钉钉立足于工作流,slack 专注于程序员之间的项目沟通。而TRPG Engine就是一款为了小众的跑团玩家所打造的通用即时通讯解决方案 项目亮点 基于 XML 描述的人物卡系统(可以理解为动态表单) - Playground …
TRPG Engine —— 一款专为跑团而生的即时通讯软件 Typescript + React + React Nativemoonrailgun:TRPG Engine - 一个专为 TRPG 打造的即时即时通讯应用 简单的来说就是类似于钉钉, Slack, Discord 那种以即时通讯为核心,以其他的业务需求为辅助而制作的功能性聊天软件。 已经独立开发 3 年, 第一次来 V 站宣传。如有不足请轻喷。 官方文档: https://trpgdoc.moonrailgun.co…
engine 和 engien 有什么区别?bantianyinshi17:engien 出现在 https://baike.baidu.com/item/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F/5985445 正文的第二行末尾 ---> 引擎 engienBrettD:百度百科拼错了… iamwho:engine = 引擎engien = 引檠 bantian…
如何在Google App Engine(Java)中创建Excel文件? - java谷歌搜索了两天后,这个问题似乎对Python有很多选择,但对Java没有任何选择。到目前为止,我真的真的可以使用一些帮助,推荐使用gaeVFS从xml组件中构建一个excel文件,然后将其全部压缩在一起,听起来像是一巴掌。哦,是的,如果您想知道我是在问我使用Java而不是python的问题,但是在5,000行代码的情况下,现在就回头吧……您可能会发现有用的其…
泽西岛App Engine:实体验证不起作用 - java我正在使用Google App Engine,Jersey,Objectify和Gson(以及其他一些小型库)构建应用程序。我想使用@Valid批注在资源中进行验证。但是,似乎没有执行任何实际的验证。特别是,当将Entry设置为payee的"123"设置为/entries和/entries/nocheck时,应用程序不会引发任何异常,并且…