V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
moonrailgun
V2EX  ›  分享创造

TRPG Engine —— 一个功能完善即时通讯解决方案

  •  1
     
  •   moonrailgun · 2020-09-25 23:55:33 +08:00 · 2063 次点击
    这是一个创建于 644 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上一次推广: /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

    6 条回复    2020-10-22 09:38:15 +08:00
    chinvo
        1
    chinvo  
       2020-09-26 09:36:33 +08:00 via iPhone
    其实……完全可以用 xmpp 的,xmpp 支持自定义消息,只要写客户端的部分就行
    moonrailgun
        2
    moonrailgun  
    OP
       2020-09-26 16:10:32 +08:00
    @chinvo 只写客户端有什么好处么。
    xmt328
        3
    xmt328  
       2020-09-28 15:22:14 +08:00
    我需要一个大佬带着玩,还需要足够的朋友来陪我玩
    Tigerw
        4
    Tigerw  
       2020-10-21 15:22:29 +08:00
    可以搞一个网页版的,开一个聊天室,供情侣聊天,怎么样?
    moonrailgun
        5
    moonrailgun  
    OP
       2020-10-21 16:48:33 +08:00
    @Tigerw 现在就是网页版的
    Tigerw
        6
    Tigerw  
       2020-10-22 09:38:15 +08:00
    @moonrailgun 注册了,试了下。但是还得有爆款场景来使用,欢迎加我微信 13718660570 交流,如何商业化
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2542 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:07 · PVG 23:07 · LAX 08:07 · JFK 11:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.