惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
Y
Y Combinator Blog
V
V2EX
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
博客园 - 叶小钗
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
B
Blog
G
Google Developers Blog
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
IT之家
IT之家
N
Netflix TechBlog - Medium
腾讯CDC

囧克斯

奔四了,写给40岁的自己 有序退网 我和 Vue.js 的十年 我参与《代码之外 Beyond Code》的故事 博客站迁移至 VitePress 的备忘 写给我的奶奶 中文格式化小工具 zhlint 及其开发心得 vue-mark-display:用 markdown 语法轻松撰写幻灯片 我对技术会议的一些看法 VueConf Hangzhou 见闻 第四届 CSSConf CN 见闻 [译]Web 表单的未来 [译]苹果正在做一些他们的程序员明摆着不想要的东西 [译]为什么我不会无偿加班且你也不应该 [译]如果管理是唯一可走的路,那就完蛋了 [译]如何撰写 Git 提交信息 [译]C 程序的原则 Vue 2.0 来了! Weex 近 4 个月的开源之路 Weex 在 JS Runtime 内的多实例管理 我理解的 SPA 我理解的 Flux 架构 【整理】Vue 2.0 自 beta 1 到 beta 4 以来的主要更新 通过一张图走进 Vue 2.0 Code Review for Vue 2.0 Preview Vue 2.0 发布啦! 务实的小而美 Vue.js 1.0.0 发布了! [译]如何成为一名卓越的前端工程师 手机淘宝前端的图片相关工作流程梳理
聊天室似乎没有想象中那么难做
勾三股四 · 2009-10-19 · via 囧克斯

本文摘自 勾三股四 更早时期的 不老歌 博客。


最近看到一个聊天室的例子:http://css-tricks.com/jquery-php-chat/

与其说是一个聊天室的demo,不如说是借这个demo构建了一个聊天室的开发原型。

一个聊天室要有通信机制,要有身份识别机制,要有数据存储机制,要有表现机制。这差不多就可以简要概括一个聊天室的构建:

通信机制
需要Web的Ajax前台和Php后台协同工作,这里分为获取已有数据(这里是定时循环获取的)以及发送新数据(留言)这两点,额外还有一个页面初始化的操作(确定数据的起始点)。

以上三部分分别对应源代码中的:

updateChat()
sendChat(message, nickname)
getStateOfChat()

我们可以在这个模型之上,根据我们的需求进行扩展。比如可以筛选信息,管理历史记录等等。

身份识别机制
这里的身份识别仅仅是要求用户在页面打开的时候输入一个昵称,作为身份的识别——已经简单到不能再简单了。
我们可以在这个模型之上,加入账户的登录注销、密码保护、连带账户信息管理之类的内容。

数据存储机制
这里通过txt文本文件记录聊天信息,每多一条记录,就在文件后面多写一行。真是简化的一塌糊涂……
数据这边的扩展方式是多种多样、五花八门的。存储方式也应该因数据结构的不同而选择正确的存储方式,例如,文本文件可以像serverlog那样,定时或定量切割成小文件,以保证执行效率和管理成本;也可以采用数据库存储,便于历史记录的管理或多维数据关系的建立;数据结构本身可以由纯文本扩展为富文本,甚至二进制码。在此不做进一步展开讨论了

表现机制
其实我们可以把这样的消息机制包装成各种通信服务,除了最简单的聊天室,像IM、短消息、在线广播,都可以做到。同时,除了Web Client,也可以通过exe执行程序等方式的客户端进行操作。

以上是关于此聊天室demo程序的一些思考,突然觉得在软件开发中,原型设计很重要。呵呵
有点后知后觉