Java 实时论坛 - Sym 1.3.0 发布 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
88250
V2EX    分享创造

Java 实时论坛 - Sym 1.3.0 发布

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

    简介

    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
       201-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
    好东西 。哇哇
    ixo
        17
    ixo  
       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 的
    tr>
    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 /td>
        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
    &nbp;   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  
    &bsp;  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     Solana     2576 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 15:22 PVG 23:22 LAX 08:22 JFK 11:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86