聊天应用亲自尝试二之私聊

私聊有时很常见,例如我们购物时,和客户聊天,这种就是一个私聊场景。

我们模拟一个场景:用户打开网页后,客户端js会生成一个随机数作为这个用户的随机用户名,我们根据用户名的随机数创建不同的事件名称来对应不同的客户端交互,这么用户名会保存在服务器端数组里以便逻辑使用。你可能还没听明白,下面就来看看如何具体的操作吧。

首先我们在客户端的index.html创建随机数并发送到服务器:

服务器接收此事件:

客户端还需要接收get user的信息:

命令行重启node index.js,刷新浏览器你会看到

20160629112223

多开几个页面你会看到他们依次被载入。

提示:我们可以加入一下代码,查看用户是否正确加载到node中

 

私聊代码开始了

下面我们正式进入私聊代码中,既然客户端已经收到了发来的随机用户,我们把这个随机用户名加入到一个表单的下拉列表中,私聊中选择用户使用:

在服务器获取用户名处添加,给客户端发送所有的人的事件

客户端实时接收此事件:

好,重启node index.js 刷新页面:

20160629121831

下面我添加一个群聊选项好保存原来的群聊应用。

 

改写客户端想服务器传送的参数

因为我们需要传给服务器:发送者和接收者的用户名和要传递的消息。

客户端代码如下:

你会问selfname是什么?是我们用来记录你用户名的一个隐藏input:

下面书写服务端代码:

服务端做了判断,如果用户存在则发送消息给相应的事件:

这里的关键是这两个消息的发送事件,他们根据用户名来组成。

客户端会用同样的原理接收服务器发来的这个消息事件:

好了,可以测试最终的结果了(大牛逼呀)

20160629181425

别忘了,重启node index.js 在测试,(图片中的群里==群聊-打错了,懒得换图了)。

下面是index.html和index.js的全部代码:

index.js

 

 

 

 

 

 

 

 

 

 

发表评论