15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > WebRTC 教程四: WebRTC聊天室设计和服务器搭建

WebRTC 教程四: WebRTC聊天室设计和服务器搭建

时间:2023-07-22 09:15:02 | 来源:网站运营

时间:2023-07-22 09:15:02 来源:网站运营

WebRTC 教程四: WebRTC聊天室设计和服务器搭建:
这篇文章主要介绍了 WebRTC 聊天室设计和搭建,主要包括信令服务器及客户端网页设计。
附上教程(1):WebRTC信令、架构和 API

附上教程(2):WebRTC API和Leak

附上教程(3):WebRTC特性,调试方法以及相关服务器搭建方法

目录

WebRTC 聊天室:设计

讲者首先介绍了要搭建 WebRTC 聊天室所需要的编程语言。对于客户端,当然应该部署在浏览器上,就选用 HTML 和 CSS 作为前端开发工具,如果想要更进一步的 UI 框架就可以选择 BootStrap,前端逻辑就可以使用 JavaScript。

对于剩下的服务端而言,信令服务器,根据前面提到的,我们可以使用 Node.JS 来作为服务端应用。

对于聊天室的一些功能,列举如下:

讲者接着介绍了对于搭建聊天室,会需要用到哪些 WebRTC 功能或 API:

讲者设计了一个聊天室的简要流程框图:

其中可以看到,NodeJS WebSocket 正在监听用户请求并返还回应,这个 NodeJS 服务器的主要责任是支持 WebRTC 信令。

WebRTC 聊天室:信令服务器

讲者首先介绍了信令服务器的代码:

服务端会接收来自客户端的请求并返回答复。如果用户刷新了页面或是关闭了页面,服务器就会移除用户,如果该用户还希望继续使用应用则需要重新登陆一次。首先创建一个 WebSocket 从客户端监听请求。在线用户列表使用 map 来储存。客户端可以通过 WebSocket 来连接服务端,json 信息用于登录或登出。服务端首先要检查客户端的信息是 json 还是一个普通的信息,来判断是登录信息还是只是一个发送的信息内容。一旦连接建立好,客户端就需要把带有用户登录信息的 json 发送给服务端,服务端就会回复成功或失败。之后服务端就会记录在用户在线名单上,最后把在线用户名单发送给所有的在线用户。

如果一个用户请求聊天室,服务端首先检查用户是否存在登录,然后就需要检查另一个用户的用户状态,并返回成功或失败。基于此服务端会令用户发送请求给另一个用户。此后,用户会根据情况选择是否接收并返还答复,服务器再将答复转发给用户。答复类型包含如下:

LinuxC++音视频开发视频:免費】FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:音视频学习资料、视频和学习路线图资料、以及面试题(资料包括C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等),免費分享,有需要的可以加君羊领取哦!~学习交流君羊994289133点击加入领取资料

WebRTC 聊天室:客户端部署

讲者首先展示了这个客户端 demo,在两个页面中可以各使用一个用户名登录,之后可以选择用户并向其发送通话请求,另一方可以选择收到或拒绝,在通话时,可以点击右上角 leave 来退出聊天。

讲者会使用 HTML 和 JavaScript 来开发客户端应用。首先讲者介绍了 HTML 来写应用页面,写一个 HTML 页面,使用不同的分区来实现登录页面和通话页面。

讲者写了一个 html 文件并命名为 index.html,在页面中加入了 head 和 body 部分,可以在 head 部分导入所需要的包。在 body 部分,使用了三个分区来分别设计登录页面,用户页面和用户聊天页面。可以通过使用 JavaScript 来控制这些分区的显示。

然后讲者展示了 Javascript 完成的这个页面的逻辑设计:

在客户端,需要连接到信令服务器。当用户名输入完毕后,用户名就需要发送到服务器确认,如果登录成功,服务器会发送返回"server_login",而如果服务器返回了"false",则说明相同的用户名已经被使用,需要换一个名字。

如果一个用户登录了,则服务器需要向所有用户同步该用户的上线信息。如果一个用户点击了另一个用户,则需要向服务器发送建立聊天的请求"wang_to_call",如果对端用户在线且有空,则会显示出请求聊天的页面,并建立 RTC 连接。为了建立 ICE 连接,首先需要添加 STUN 和 TURN 服务器名。之后就可以通过 RTCPeerConnection API 创建 WebRTC 连接。接下来通过 Create_DataChannel API 函数创建 RTCDataChannel,你可以根据需求来设置你的 DataChannel 参数。DataChannel 建立完毕后,还需要为其设置回调函数,如报错,收到信息,打开和关闭 channel 等。之后根据客户端请求建立 SDP 请求,最后创建 WebRTC 答复。最后在两个用户都发送了"ready"答复后,就可以开始创建聊天室,并将两个用户的状态都设置为"busy"。

关键词:和服,教程,设计

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭