分享: 基于 node.js 和 react 开发的 web 聊天室 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
suisuijiang
V2EX    Node.js

分享: 基于 node.js 和 react 开发的 web 聊天室

  •  1
     
  •   suisuijiang 2016-11-01 12:01:49 +08:00 4444 次点击
    这是一个创建于 3270 天前的主题,其中的信息可能已经有所发展或是发生改变。

    预览: fiora.suisuijiang.com
    源码: yinxin630/fiora

    请使用较新的浏览器访问(最新版 chrome/safari/firefox/edge/QQ 浏览器都测试可行)
    不支持影响式, 移动端页面是单独开发的, 仅支持 chrome 和 safari, 功能简陋(楼主太懒!一直拖更!)
    以后会使用 react-native 开发双平台 app 的(你说了几个月了吧)

    功能

    • 创建用户, 创建群组, 加入群组, 私聊, 群聊
    • 文本, 图片, 代码, url 等多种类型消息, 还有炸弹 /系统消息两种恶搞消息
    • 消息桌面通知, 声音提醒, 通知开关
    • 用户信息修改, 头像修改, 表情收藏, 群公告修改
    • 消息内容过滤, 消息长度限制, 消息发送频率限制
    • 提供第三方消息的实现接口, 炸弹和系统消息即依此实现(需要重新部署前端才能供其它用户使用)

    技术栈

    后端使用 koa 提供一个简易的 http 服务器, 并将所有路由定位到入口 index.html 处理. 使用 socket.io 前后端通讯, 后端 API 采用类似 Restful 风格的接口, 数据库是 MongoDB, 使用 bluebird 和 generator 处理异步, 用户认证采用 jwt token 的方式.

    前端基于 react 框架, 资源大部分在 cdn 上(背景图打包进了 js 里), 使用 immutable 和 redux 处理数据, react-router 提供路由, 未使用第三方 UI 库, 页面样式均使用 sass 编写.

    12 条回复    2016-11-20 19:31:10 +08:00
    eoo
        1
    eoo  
       2016-11-01 12:24:33 +08:00 via Android
    http://ci.baidu.com/43vVBVPMcJ 手机端惨不忍睹
    suisuijiang
        2
    suisuijiang  
    OP
       2016-11-01 13:17:54 +08:00
    @eoo 什么浏览器, 你这个明显部分 css 没起作用
    eoo
        3
    eoo  
       2016-11-01 14:12:25 +08:00 via Android
    @suisuijiang 用的 UC 浏览器,,,,能请教个问题吗 , 有关 nodejs 异步问题, 就是我要用 nodejs 做个签到和做任务的工具, 开头取 cookie 哪里没有问题, 就是执行任务, 哪里因为不止一个一个任务 ,原先我采用的是 for in 循环执行 ,因为我要把每个帐号完成的积分通过 socket.io 更新到前端 ,但是循环任务哪里 还没有全部执行完 Async 就提前 callback 进去下一环节 取积分返回 ,就想问问 有没有更好的办法 能让执行任务哪里全部做完才能进去下一环节, 嵌套 Async 可以?
    suisuijiang
        4
    suisuijiang  
    OP
       2016-11-01 15:52:59 +08:00
    @eoo 不知道你是前端还是后端的异步问题, async 这个库我用的少, 估计你的用法是有问题的. 我写异步都是用 bulebrid+generator 的, 现在 node7 还可以直接用 async/await
    eoo
        5
    eoo  
       2016-11-01 18:16:57 +08:00
    @suisuijiang QQ 方便贴一下嘛?
    suisuijiang
        6
    suisuijiang  
    OP
       2016-11-03 10:41:11 +08:00
    @eoo 直接来聊天室嘛, QQ 贴代码贴链接啥的都不方便
    eoo
        7
    eoo  
       2016-11-04 19:03:35 +08:00
    @suisuijiang 。。。。。。。。。。。。。。。 不见你人啊
    suisuijiang
        8
    suisuijiang  
    OP
       2016-11-07 11:30:03 +08:00
    @eoo 所有消息我肯定会看的. 周末忙于开车, 无心撸码.
    suisuijiang
        9
    suisuijiang  
    OP
       2016-11-07 11:30:49 +08:00
    更新 v1.1.2, 修复 bug, 炸弹可以炸没头像的新人了, 新加了 shit 消息, 有味道的聊天室.
    zoobop
        10
    zoobop  
       2016-11-08 10:04:01 +08:00
    可以,很强势,很有意思
    songdezu
        11
    songdezu  
       2016-11-17 09:45:09 +08:00
    能否提供 RDB 支持比如 mysql postgres
    suisuijiang
        12
    suisuijiang  
    OP
       2016-11-20 19:31:10 +08:00
    @songdezu 是支持 mysql 或者 postgres 数据库存储吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1010 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:29 PVG 02:29 LAX 11:29 JFK 14:29
    Do have faith in what you're doing.
    ubao msn 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