NodeJS + Socket.io 实现的一个在线聊天室, 预览效果如下
每打开一个网页,就可以输入姓名进入聊天室,然后就可以尽情的聊天啦!
提示:
- 样式设置的比较简单,更谈不上响应式设计,所以建议在电脑上打开预览网址进行使用
- 目前也正在找
bug
,如果你找到了,希望多多指教
- 主要依赖
sockt.io
实现,可以在 Socket.io 官网 查看使用文档,上手非常快。 - 至于部署,是使用
Heroku
,一个国外的平台,部署NodeJS
程序十分简单,可以去 Heroku 官方 查看相关使用教程。
- 20170508
问题出现: 当多个用户登录时,随着用户的离线会导致一些仍然在线的用户从左侧联系人中消失。
问题原因:为了能从 DOM
中删除元素,在用户连接的时候我在后台为每个用户分配了一个类似 id
的辨别机制,然后再插入 DOM
的时候以此为类名,不过我采取的策略是以用户数组的当前长度作为标志,这时候随着数组的递减,会导致一批用户拥有相同的标志,也就是在 DOM
中拥有相同的类名,所以会有此问题出现。
问题解决:使用 uuid 模块,为每一个用户分配以时间为基准的随机数字串,这时用户标志重复的可能性是非常低的,几乎不可能出现,这样也就解决了这一问题。