Carbon Forum 3.3.6 发布,更新实时消息推送,全站异步刷新,历史数据统计等……

2015-07-21 10:29:13 +08:00
 lincanbin

距离上个版本发布过去了两个半月,最近比较忙,所以更新的内容不多。
这是一个小版本更新,各位选择性升级。

官网地址/演示地址: http://www.94cb.com/ (使用手机访问会自动跳转至手机版,或者手机直接输入 m.94cb.com )
GitHub地址: https://github.com/lincanbin/Carbon-Forum
3.3.6 下载地址: https://github.com/lincanbin/Carbon-Forum/archive/3.3.6.zip

主要更新日志如下:

实时消息推送

考虑PHP的限制与浏览器兼容性,最终选择了Long poll来实现实时的消息推送。用户可以自行调整长连接时长,建议调成120s(PHP最大超时时间也要相应修改)。
这个性能也相当不错,在开启Memcached的情况下,一台最低配的DO VPS大概可以承受50000人在线同时接受推送 ,换好一点的独立服务器可以更多。当然,50000人在线是足够绝大多数论坛使用的了。
同时使用了HTML5的Notification API,即使网页在后台被最小化,也可以继续推送通知,不受影响,让论坛变得像即时通讯工具一样高效。

全站异步加载

即使服务器在美国,也实现了每次从客户点击到浏览器完全渲染完毕,耗时在400ms以内(网络线路正常的情况下),同时除了jQuery与我自己的global.js,其他js均以异步方式载入,非阻塞。
并且搜索引擎友好性并没有降低,配合我之前做的Sitemap等SEO优化,保证了高收录

论坛历史数据统计

这是一个早就设计好的表了,这个版本把坑填上了,查看每天的新帖、总帖、新主题、总主题、新用户、总用户数量的变化。
http://www.94cb.com/statistics (官网有快10年的数据,全部展开的话,浏览器有近20000个点要渲染,可能会比较慢)

次要的

4107 次点击
所在节点    分享创造
36 条回复
zangbob
2015-07-21 12:09:34 +08:00
@lincanbin 截图发94cb上了……
lincanbin
2015-07-21 12:17:49 +08:00
@DearTanker
@zangbob



问题坐实,是我服务器配置的问题,返回的header中竟然把首页做Cache了。
实际上登陆已经成功了,只是因为缓存问题,看到的是之前未登录的页面。
lincanbin
2015-07-21 13:13:34 +08:00
@journey 哪里膜了?你真是excited。
est
2015-07-21 13:23:45 +08:00
还是大php创造力旺盛啊。。。
lincanbin
2015-07-21 13:34:07 +08:00
@est PHP用long poll实现长连接也是一个妥协的做法。
如果不考虑浏览器兼容性和PHP虚拟主机的常规限制的话,我是打算用node.js和websocket来实现实时消息推送的。
没准这样做就可以达到单VPS支持100000人同时在线接收推送的水平。
k21654987
2015-07-21 15:24:24 +08:00
厉害
banri
2015-07-21 15:32:05 +08:00
好顶赞,关于响应式设计的理解上,我觉得这楼里讨论的有点片面?

目前成熟、稳定的方案也确实是通过UA区分桌面端和手机端,但是在桌面端和手机端各自的情况下,还是需要响应式设计的。响应式设计的精髓在于媒体查询,可根据媒体类型、分辨率、DPI来确保各种情况下的显示都能够达到最好的浏览效果。

比如对于高分屏采用DPI查询增加字号和图片分辨率等,这都是属于响应式设计的一种啦 -w-
lincanbin
2015-07-21 15:34:33 +08:00
@banri 你说得也有道理,目前的移动端虽然是另一套独立的模板,但是也是响应式布局。
PC端暂时没有这个打算,要考虑的东西太多了,做响应式我也没把握做好。
DearTanker
2015-07-21 15:50:08 +08:00
为何我没有收到上面几条的系统通知?



@Livid
lincanbin
2015-07-21 16:37:11 +08:00
@DearTanker 我也经常这样,在自己主题刷着看到了新回复,却没看到通知。
等我回复完了,刷着刷着,突然就来了消息通知,点开一看,是十几分钟前的了。
jayzhong
2015-07-21 19:51:47 +08:00
@lincanbin 还是用 swool 把,这个更靠谱
lincanbin
2015-07-21 20:08:31 +08:00
@jayzhong 问题是这个是个开源项目,肯定要兼顾兼容性,如果用swool,那么那种一年租几十块钱虚拟主机的用户到哪里编译extension用?
如果不考虑这部分虚拟主机用户,把目标全放在有VPS/独服的用户,最佳方案也不是用swool。
而是论坛部分由Carbon Forum完成,推送部分使用node.js例如io.js,然后用胶水粘起来。
pein
2015-07-22 08:53:23 +08:00
厉害,这功能都有了。之前也写过一个长连接的东东,你这个貌似是服务器端循环的,压力比客户端轮询会大一些吧,sleep时间改大点压力会小蛮多,反正也不是聊天室那种即时通讯,呵呵。有没有想过用websocket来做呢?
yueyoum
2015-07-22 10:26:42 +08:00
很不错 ,

赞!
cobola
2015-07-22 11:06:15 +08:00
写的不错 楼主考虑用meteor 来写一遍么? https://github.com/cobola/meteorbb
mfanming
2015-09-11 18:34:58 +08:00
准备用林先生这套

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/207154

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX