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

Java 实时论坛 - Sym 1.3.0 发布

  •  
  •   88250 ·
    88250 · 2015-10-02 18:22:53 +08:00 · 6289 次点击
    这是一个创建于 3134 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介

    Sym 是一个用 Java 写的实时论坛,欢迎来体验

    初衷

    Sym 的诞生是有如下几点原因:

    • 我们想实现一种新的网络社区体验,独立博客+社区互动
    • 大多数论坛用户体验不够现代化,想做一个和聊 QQ 一样体验的论坛
    • 已有的用 Java 写的论坛真的很少 /丑,并且大多已经不再维护

    基本理念

    实时交互

    在浏览帖子时,传统论坛都是需要刷新页面来查看回帖的。 Sym 在类似的用户交互场景上是基于 WebSocket 技术进行架构的,看帖时不需要刷新页面也可以看到其他人回帖。

    HTML5

    Sym 使用了很多 HTML5 提供的技术特性,比如通过使用_本地存储_防止编辑帖子 /评论时内容丢失;使用了_音频_特性来进行帖子 /评论音频录制;复制 /粘贴上传图片等等。

    运用这些技术, Sym 可以让用户在分享、灌水时更加便捷、舒服 :smirk:

    积分系统

    积分系统是所有论坛的基础 /标配系统之一吧,好玩是一方面,另一方面是量化每个用户的价值。 Sym 的积分系统参考了 V2EX 的积分系统,未来将会加入更多动态特性,比如用户阵营汇率、系统运营参数等。

    互联

    Sym 提供了 API 进行帖子、评论的同步(B3log 构思),目前 Solo 博客系统已经可以完整和 Sym 保持内容同步。

    功能图解

    首页

    首页使用 Reddit 热帖排序算法,基于用户投票和时间来决定首页内容。另外,列表上面的每篇帖子都有一个_小红条_,表示该帖的当前热度(实时浏览 /评论)。

    首页

    帖子

    帖子

    个人设置

    个人设置

    发布选择

    目前有 4 类帖子:

    • 文章:普通的帖子,注重作者分享经验和见解
    • 思绪:记录写作过程,实例请看这里
    • 讨论组:邀请好友进行私密交流,其他用户看不到具体内容和评论
    • 同城广播:发起你所在城市的招聘、 Meetup 等

    发布选择

    发布编辑

    • Markdown 编辑器
    • Chrome 下可以直接粘贴图片,其他浏览器支持拖拽
    • 除了使用文字,也可以在帖子内一键进行录音
    • 支持标准 Emoji 表情
    • 积分打赏

    发布编辑

    移动端

    移动端目前除了不能录音外,其他功能和 PC 端保持一致。

    首页

    移动端首页

    浏览帖子

    移动端浏览帖子

    评论区

    移动端评论区

    发布

    移动端发布

    安装

    需求: Maven3+、 MySQL5+、 Jetty9+

    1. 下载源码
    2. 解压后修改 src/main/resources/local.properties 中的数据库配置,并创建数据库
    3. _可能需要_修改 latke.properties 中的端口为容器端口
    4. _可能需要_修改 init.properties 中的管理员账号
    5. 使用 mvn install 进行构建
    6. 部署到 Servlet 容器的 ROOT 下并启动容器,数据库表会在第一次启动时自动建立

    注意:

    • 只能部署到 ROOT 中,线上环境建议使用反向代理

    配置

    • 图片上传使用的是七牛,需要配置 symphony.properties 中的 qiniu.* 属性
    • 邮件发送使用的是 SendCloud,需要配置 symphony.properties 中的 sendcloud.* 属性

    用户注册时是启用邮件验证的,如果需要修改请参考相关代码。

    商用授权

    请看这里

    思绪

    在实现 B3log 构思的这几年:

    • 我们见证了 xAE ( GAE/BAE/SAE/etc )的兴起与没落。 2009 年选择了 GAE 作为服务器,并开始实现 Latke 框架来解决跨云平台,直到今年告别 GAE,不得不感叹技术更迭之快
    • 感受到了自造轮子的优缺点,并且可以肯定一点:对于一个想要长久的产品来说,自制技术框架优势远大于劣势
    • 一个_好玩_的产品或说是细节特性然并卵,需要做的是一个能够持续提供用户价值的产品 /特性
    • 虽然直到目前 B3log 系产品用户不多,但我们已经初步证明了: Java 用来实现博客、论坛没有什么不好的(仅次于 PHP 吧)
    • 先完成本职工作,再用开源的产品 /经验来进行工作相关结合与提升
    第 1 条附言  ·  2015-12-05 16:57:03 +08:00
    我一直在完善他,无论是否有意义。

    一直在努力,感觉到一直在前进,这已经足够了。

    @Vanessa
    69 条回复    2015-12-28 09:22:16 +08:00
    zonghua
        1
    zonghua  
       2015-10-02 19:18:46 +08:00 via iPhone   ❤️ 1
    这个也是你们夫妻两人做的吗😓实在不喜欢那个飞来飞去的小红点
    88250
        2
    88250  
    OP
       2015-10-02 19:50:05 +08:00 via Android
    @zonghua 嗯。。。。那个习惯下也蛮好玩的
    Ansen
        3
    Ansen  
       2015-10-02 21:29:50 +08:00 via iPhone   ❤️ 1
    支持 d 大
    Omitted
        4
    Omitted  
       2015-10-02 22:00:33 +08:00   ❤️ 1
    夫妻俩 😶

    我女朋友也学编程,为卅差这么远 😭
    88250
        5
    88250  
    OP
       2015-10-02 22:05:38 +08:00
    @Ansen 多谢 A ,好好养伤。
    88250
        6
    88250  
    OP
       2015-10-02 22:06:29 +08:00
    @Omitted 你要主动带她玩啊~
    cppgeek
        7
    cppgeek  
       2015-10-03 00:53:14 +08:00   ❤️ 1
    喜欢小红点+1
    lincanbin
        8
    lincanbin  
       2015-10-03 02:15:49 +08:00   ❤️ 1
    Powered by B3log 开源 • Sym 1.3.0 • 389ms

    为什么 Java 写的也可以这么慢……
    TMD
        9
    TMD  
       2015-10-03 09:33:26 +08:00   ❤️ 1
    载入页面时到服务器的连接被重置。
    88250
        10
    88250  
    OP
       2015-10-03 09:52:20 +08:00
    @TMD 现在应该好了吧?
    88250
        11
    88250  
    OP
       2015-10-03 09:52:50 +08:00
    @lincanbin 暂时没有做任何优化
    miao
        12
    miao  
       2015-10-03 14:01:50 +08:00
    那么 无任何 java 基础的人怎么安装这个论坛程序呢
    88250
        13
    88250  
    OP
       2015-10-03 14:44:08 +08:00
    @miao 大致说来:

    1. 安装 JDK 、 Jetty
    2. 按照项目主页里面的教程一步一步来
    pupboss
        14
    pupboss  
       2015-10-03 16:04:20 +08:00
    好漂亮的论坛
    88250
        15
    88250  
    OP
       2015-10-03 16:10:27 +08:00
    @pupboss 你是认真的,一定是。
    GPU
        16
    GPU  
       2015-10-03 16:21:04 +08:00   ❤️ 1
    好东西 。哇哇
    microget
        17
    microget  
       2015-10-03 16:26:08 +08:00   ❤️ 1
    如果能使用 java web 的主流框架实现,更容易流行和推广。
    不会或不想二次开发的, php 的开源程序竞争力很强。
    想二次开发的,还得花时间熟悉一个新的框架,以及考虑框架的本身可能存在的问题,比较麻烦。
    gzlock
        18
    gzlock  
       2015-10-03 16:29:36 +08:00 via Android   ❤️ 1
    一个星期前我也想到了用 Websocket 做讨论区,没想到有人实现了
    88250
        19
    88250  
    OP
       2015-10-03 16:37:41 +08:00
    @microget 这个框架就是一个非常简化的 SpringMVC 实现,很容易上手的啦。

    @gzlock :-) 可以一起来完善!
    pupboss
        20
    pupboss  
       2015-10-03 16:45:39 +08:00
    @pupboss 哎呀,我想问个弱智问题...数据库配置那项, runtimeDatabase=MYSQL ,改成 MARIADB 行不行,还有下面的 驱动,直接写 org.mariadb.jdbc.Driver 会不会提示驱动不存在
    88250
        21
    88250  
    OP
       2015-10-03 16:57:08 +08:00   ❤️ 1
    @pupboss 会的,除非你把 MariaDB 的驱动加进去。
    cppgeek
        22
    cppgeek  
       2015-10-03 17:12:14 +08:00
    你这个提供 OpenAPI 吗?可以和 github 的 OAuth 集成吗?
    88250
        23
    88250  
    OP
       2015-10-03 17:33:15 +08:00
    @cppgeek 现在没有 OAuth 授权方式的,暂时不想加。
    UBER
        24
    UBER  
       2015-10-03 17:43:08 +08:00
    也欢迎来 体验 http://vimtips.cn
    est
        25
    est  
       2015-10-03 18:44:35 +08:00   ❤️ 1
    非常赞。
    88250
        26
    88250  
    OP
       2015-10-03 18:53:21 +08:00 via Android
    @est 多谢支持!
    billychow
        27
    billychow  
       2015-10-03 19:21:43 +08:00   ❤️ 1
    多年以前 AJAX 刚刚盛行的时候就有想实现一个实时论坛的想法,但是能力有限一直没有去尝试,没想到现在楼主用 HTML 5 实现了,非常非常赞!
    88250
        28
    88250  
    OP
       2015-10-03 19:23:20 +08:00 via Android
    @billychow 虽然 sym 很小众,但共勉。
    Soaper
        29
    Soaper  
       2015-10-03 19:36:42 +08:00   ❤️ 1
    咦………对服务器需求较大吧……并发一大就傻 x 了………
    88250
        30
    88250  
    OP
       2015-10-03 22:14:33 +08:00 via Android
    @Soaper 关键是没并发啊
    thinkmore
        31
    thinkmore  
       2015-10-05 12:53:04 +08:00   ❤️ 1
    @88250 请问地址是在哪儿呀?或者 github 地址
    88250
        32
    88250  
    OP
       2015-10-05 13:19:15 +08:00
    Actrace
        33
    Actrace  
       2015-10-06 00:36:03 +08:00   ❤️ 1
    以前用 php 实现过..
    1023400273
        34
    1023400273  
       2015-10-06 09:26:31 +08:00
    你们的论坛是不是发的帖子和评论啥的都会跟你们社区论坛同步?
    88250
        35
    88250  
    OP
       2015-10-06 10:13:08 +08:00
    @1023400273 什么意思?
    1023400273
        36
    1023400273  
       2015-10-06 12:34:24 +08:00
    @88250 上次搭建了你们的论坛试了下,发的帖子好像同步到你们的社区了
    88250
        37
    88250  
    OP
       2015-10-06 13:23:33 +08:00
    @1023400273 你说的是 Solo 博客吧?
    1023400273
        38
    1023400273  
       2015-10-06 14:19:34 +08:00
    @88250 是的,难道你这个不是 solo ?看你 的截图上有 solo 的,还以为是 solo 的
    1023400273
        39
    1023400273  
       2015-10-06 14:21:11 +08:00
    @88250 是不是也叫 b3log ?
    88250
        40
    88250  
    OP
       2015-10-06 14:39:36 +08:00
    @1023400273 这个是 Sym ,是论坛,不是博客。 B3log 是开源组织的名称:

    * http://b3log.org
    * https://github.com/b3log
    1023400273
        41
    1023400273  
       2015-10-06 14:50:00 +08:00
    @88250 但是我看你们的描述好像还是会进行帖子、评论的同步
    88250
        42
    88250  
    OP
       2015-10-06 14:55:49 +08:00
    @1023400273 会的,只要安装了 Solo 博客,会自动和社区保持内容同步。
    1023400273
        43
    1023400273  
       2015-10-07 11:42:14 +08:00   ❤️ 1
    @88250 我是说你这个论坛会和社区内容同步吗?如果能这个功能可以关闭的吗?
    88250
        44
    88250  
    OP
       2015-10-07 14:12:51 +08:00
    @1023400273 你说的社区是哪个?
    1023400273
        45
    1023400273  
       2015-10-07 15:52:46 +08:00
    @88250 就这么说吧, Sym 会不会和 solo 一样会有内容同步机制,如果有是否可以关闭?
    88250
        46
    88250  
    OP
       2015-10-07 18:12:09 +08:00
    @1023400273 有的,要完整同步的话还需要部署 Rhy ,细节请看这里: http://hacpai.com/b3log

    要关闭的话只需要用户配置一下 Sym 中的 B3log Key 设置就行了。
    beneo
        47
    beneo  
       2015-10-08 07:26:26 +08:00   ❤️ 1
    挺好的,加颗星
    88250
        48
    88250  
    OP
       2015-10-08 09:26:42 +08:00
    @beneo 谢谢支持!
    wendellup
        49
    wendellup  
       2015-10-08 11:46:11 +08:00   ❤️ 1
    mark!
    wucao219101
        50
    wucao219101  
       2015-10-08 17:02:28 +08:00   ❤️ 1
    很棒!
    88250
        51
    88250  
    OP
       2015-10-08 17:17:26 +08:00
    niko
        52
    niko  
       2015-10-09 13:50:44 +08:00   ❤️ 1
    支持一下。
    88250
        53
    88250  
    OP
       2015-10-09 14:20:02 +08:00
    @niko 谢谢~
    bozong
        54
    bozong  
       2015-11-07 23:47:31 +08:00   ❤️ 1
    66666
    onionnews
        55
    onionnews  
       2015-11-08 19:44:49 +08:00   ❤️ 1
    @UBER 这是什么系统
    88250
        56
    88250  
    OP
       2015-11-08 19:46:17 +08:00
    @onionnews 一个用 Java 开发的现代化论坛系统
    hqs123
        57
    hqs123  
       2015-11-08 23:42:27 +08:00   ❤️ 1
    非常不错,不过安装好像有点复杂,可不可以再简单点?
    88250
        58
    88250  
    OP
       2015-11-09 09:20:03 +08:00
    @hqs123 主要是配置第三方服务有点麻烦,其他还好吧。
    canesten
        59
    canesten  
       2015-12-05 17:17:59 +08:00   ❤️ 1
    WebSocket 洋气啊
    XianZaiZhuCe
        60
    XianZaiZhuCe  
       2015-12-05 17:24:08 +08:00 via Android   ❤️ 1
    shyling
        61
    shyling  
       2015-12-05 17:39:17 +08:00   ❤️ 1
    假如说用户在线很多会不会很占用资源呀,毕竟都是长连接
    cxshun
        62
    cxshun  
       2015-12-05 18:12:12 +08:00   ❤️ 1
    很赞,同是搞 java 的过来支持一下。
    88250
        63
    88250  
    OP
       2015-12-05 18:21:42 +08:00
    @shyling 那要等在线用户多了在优化,现在还好!
    88250
        64
    88250  
    OP
       2015-12-05 18:39:48 +08:00
    多谢管理员了。
    shyling
        65
    shyling  
       2015-12-05 19:08:14 +08:00   ❤️ 1
    @88250 那到也是呢。。
    xingso
        66
    xingso  
       2015-12-05 20:59:23 +08:00   ❤️ 1
    楼主什么服务器啊。好快
    88250
        67
    88250  
    OP
       2015-12-06 10:34:52 +08:00
    @xingso 阿里云~
    xingso
        68
    xingso  
       2015-12-06 19:28:59 +08:00
    @88250 看你网站下面没留备案信息。我还以为没备案呢。
    cq7216
        69
    cq7216  
       2015-12-28 09:22:16 +08:00
    确实很棒的网站,收录了,支持!!!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2265 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 91ms · UTC 08:10 · PVG 16:10 · LAX 01:10 · JFK 04:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.