WebRTC 发送消息
现在让我们创建一个简单的示例。首先,通过“node server”运行我们在“信令服务器”教程中创建的信令服务器。
页面上将有三个文本输入框,一个用于登录,一个用于用户名,一个用于发送到其他对等方的消息。创建一个index.html文件,并添加以下代码 –
同时,我们还添加了三个按钮,用于登录、建立连接和发送消息。现在创建一个 client.js 文件,并添加以下代码 –
您可以看到,我们与信令服务器建立了一个套接字连接。当用户点击登录按钮时,应用程序将他的用户名发送到服务器。如果登录成功,应用程序创建RTCPeerConnection对象,并设置onicecandidate处理程序,该处理程序将所有找到的iceCandidates发送给其他对等方。它还运行openDataChannel()函数来创建一个dataChannel。请注意,当创建RTCPeerConnection对象时,构造函数中的第二个参数可选:[{RtpDataChannels:true}],如果您正在使用Chrome或Opera,则必需。下一步是向其他对等方创建一个offer。将以下代码添加到您的client.js文件中−
您可以看到,当用户点击“建立连接”按钮时,应用程序向另一对等方发出一个SDP提议。我们还设置了onAnswer和onCandidate处理程序。最后,让我们实现openDataChannel()函数来创建我们的dataChannel。将以下代码添加到您的client.js文件中−
在这里,我们为我们的连接创建数据通道,并为“发送消息”按钮添加事件处理程序。现在在两个标签页中打开此页面,使用两个用户登录,建立连接,然后尝试发送消息。您应该在控制台输出中看到它们。请注意,上述示例在Opera中测试通过。
现在你可能会发现RTCDataChannel是WebRTC API中非常强大的部分。这个对象还有很多其他用例,比如点对点游戏或基于种子的文件共享。