距离上个版本发布过去了两个半月,最近比较忙,所以更新的内容不多。
这是一个小版本更新,各位选择性升级。
官网地址/演示地址: 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个点要渲染,可能会比较慢)
1
lincanbin OP 最近比较忙,这两个月我干的也没什么别的,大概三件事。一个,实时消息推送。第二个,全站异步刷新。第三个,历史数据统计。如果说还有一点成绩就是悬浮展示引用并回复的帖子的内容。还有数十处细节修改也是很大的。但是这些都是次要的,我主要的就是三件事情。很惭愧,就做了一点微小的工作,谢谢大家。
|
2
lincanbin OP 悬浮展示回复的帖子的内容这块是 oott123 做的。
然后繁体中文语言包是 孙志贵 和 LNDDYL 做的。 特此鸣谢。 https://github.com/lincanbin/Carbon-Forum/graphs/contributors |
3
zqjilove 2015-07-21 11:08:16 +08:00
@lincanbin , 来一个discuz转数据到Carbon Forum的功能。估计一些老站点也会考虑试用。至少我有想尝试的意愿。
|
4
q000q000 2015-07-21 11:12:25 +08:00
手机版标题字体好大...
|
6
lincanbin OP @zqjilove Discuz里的数据能跟我那个程序里对得上的不多,DZ是板块分类,我的是像知乎那样的标签分类。
这点比较麻烦,用户系统倒还是差不多,密码都是MD5(MD5(Password)+Salt),这点倒是可移植,但是其他的就麻烦了。 |
7
ahu 2015-07-21 11:24:47 +08:00
@lincanbin 没考虑做成相应式页面吗?我觉得不需要再专门搞一个手机版了,一套页面PC访问时显示PC版式,手机访问时显示手机版式,跟V站一样
|
8
lincanbin OP @ahu V站不是响应式,他也是根据UA切换两套不同的模板,只是两套刚好长得非常像。
另外响应式我觉得就是偷懒、不负责任的行为,个人非常讨厌响应式。 鼠标驱动和触摸驱动的,能硬用同一套Layout? 这搞出来就跟知乎或者Bootstrap一个样了,用起来反正我是讨厌得不行。 |
9
zangbob 2015-07-21 11:42:31 +08:00
@lincanbin 目前这种分开的做法比较好。
前阵儿新弄了一个站,用的响应式,各种浏览器、大小兼容要改,CSS弄到要吐。虽然google建议响应式,从长远考虑,还是PC站和mobile分开好,这点非常赞同 |
10
abmin521 2015-07-21 11:42:57 +08:00 via Android
好牛的样子,
|
11
lincanbin OP @zangbob 还有就是大部分响应式,在浏览器开启缩放的时候会跪。
例如1600*900的屏幕,平时开150%很合理吧,大部分响应式设计还没考虑到这个点,都跪了,特别是图片多了那种幻灯片式的。 响应式要考虑的太多,容易做烂,水平不够就不要玩响应式。 360、腾讯、百度都有一些前端页是做响应式做到玩脱的,页面直接变形了。 |
12
zangbob 2015-07-21 11:54:07 +08:00
|
14
DearTanker 2015-07-21 12:00:46 +08:00 1
|
15
DearTanker 2015-07-21 12:01:14 +08:00
@zangbob 我刚才也是这个问题,再登录一次就可以了。。
|
16
lincanbin OP 顺便黑一下微软,虽然Win 10会有通知中心,但是Edge依旧不支持HTML5规范中的Notification API,所以Microsoft Edge浏览器中没办法后台推送消息通知,只能做到知乎那个程度的前台实时消息推送。
在Chrome、FireFox、Opera之类的浏览器就没有这个问题。 |
17
DearTanker 2015-07-21 12:02:35 +08:00
貌似是卡了还是连击了,出现了2个编辑框 |
18
lincanbin OP @DearTanker 编辑器是支持右键粘贴图片的,我论坛里的截图都是用QQ截图后粘贴的。
|
19
lincanbin OP @DearTanker 估计是卡了吧,是每次都会还是偶然现象?
如果是每次都会的话,报下浏览器的版本号。 改成全异步后有好多屁股要擦,可能是我没擦干净? simditor逼格是挺高的,可是要IE 10+才能跑,我觉得用在开源项目中不太现实,最起码市场占有率还有20%的IE8得支持。 虽然说不来不太好听,可是我的论坛还是保持了IE6基本兼容的。 |
20
journey 2015-07-21 12:06:29 +08:00
强行膜蛤.....
|
22
lincanbin OP |
24
est 2015-07-21 13:23:45 +08:00
还是大php创造力旺盛啊。。。
|
25
lincanbin OP @est PHP用long poll实现长连接也是一个妥协的做法。
如果不考虑浏览器兼容性和PHP虚拟主机的常规限制的话,我是打算用node.js和websocket来实现实时消息推送的。 没准这样做就可以达到单VPS支持100000人同时在线接收推送的水平。 |
26
k21654987 2015-07-21 15:24:24 +08:00
厉害
|
27
banri 2015-07-21 15:32:05 +08:00
好顶赞,关于响应式设计的理解上,我觉得这楼里讨论的有点片面?
目前成熟、稳定的方案也确实是通过UA区分桌面端和手机端,但是在桌面端和手机端各自的情况下,还是需要响应式设计的。响应式设计的精髓在于媒体查询,可根据媒体类型、分辨率、DPI来确保各种情况下的显示都能够达到最好的浏览效果。 比如对于高分屏采用DPI查询增加字号和图片分辨率等,这都是属于响应式设计的一种啦 -w- |
28
lincanbin OP @banri 你说得也有道理,目前的移动端虽然是另一套独立的模板,但是也是响应式布局。
PC端暂时没有这个打算,要考虑的东西太多了,做响应式我也没把握做好。 |
29
DearTanker 2015-07-21 15:50:08 +08:00
|
30
lincanbin OP @DearTanker 我也经常这样,在自己主题刷着看到了新回复,却没看到通知。
等我回复完了,刷着刷着,突然就来了消息通知,点开一看,是十几分钟前的了。 |
32
lincanbin OP @jayzhong 问题是这个是个开源项目,肯定要兼顾兼容性,如果用swool,那么那种一年租几十块钱虚拟主机的用户到哪里编译extension用?
如果不考虑这部分虚拟主机用户,把目标全放在有VPS/独服的用户,最佳方案也不是用swool。 而是论坛部分由Carbon Forum完成,推送部分使用node.js例如io.js,然后用胶水粘起来。 |
33
pein 2015-07-22 08:53:23 +08:00
厉害,这功能都有了。之前也写过一个长连接的东东,你这个貌似是服务器端循环的,压力比客户端轮询会大一些吧,sleep时间改大点压力会小蛮多,反正也不是聊天室那种即时通讯,呵呵。有没有想过用websocket来做呢?
|
34
yueyoum 2015-07-22 10:26:42 +08:00
很不错 ,
赞! |
35
cobola 2015-07-22 11:06:15 +08:00
写的不错 楼主考虑用meteor 来写一遍么? https://github.com/cobola/meteorbb
|
36
mfanming 2015-09-11 18:34:58 +08:00 via Android
准备用林先生这套
|