通过 websocket 或使用 WebRTC 的数据通道逐个字符发送?

Posted

技术标签:

【中文标题】通过 websocket 或使用 WebRTC 的数据通道逐个字符发送?【英文标题】:Send character by character via websocket or Data channel with WebRTC? 【发布时间】:2013-07-15 17:41:08 【问题描述】:

是否可以通过 websocket 或使用 webrtc 的数据通道逐个字符发送(将来)?我正在寻找两个或多个浏览器之间的实时文本通信,并由多个用户并行编辑文本。例如:一个人写一个文本(一个字符一个字符),另一个同时更正相同的文本。

谢谢

【问题讨论】:

【参考方案1】:

好吧,我没有使用过 WebRTC 数据通道,但是鉴于它们的 API 与 WebSockets 的 API 相似,我认为您需要的是绝对可行的,您只想一次发送一个字符,或者发送一条包含字符及其位置以及您需要的任何其他信息。 有点像

var websocket = new WebSocket("server address");

websocket.onmessage = function(message) 
   console.log("Character sent: ", JSON.parse(message));
;

// somewhere in your code
websocket.send(JSON.stringify(
   position: 42,
   character: 'a'
));

【讨论】:

听起来很简单。如何将字符设置在文本框中的位置? keyup后会执行函数websocket.send吗? 您需要监听keyUpinput 事件。 input 更好,因为它只在真实输入时触发,而keyUp 在每次按键(回车,箭头)时触发。如果在您的应用程序中用户只能输入文本或只能删除最后一个字符,那么您根本不需要位置,您只需要有两种消息类型,一种用于输入,一种用于删除。如果您的用户可以在任意位置编辑文本,那么它会变得更加困难,但您可以在 *** 上搜索如何获取光标位置和字符位置

以上是关于通过 websocket 或使用 WebRTC 的数据通道逐个字符发送?的主要内容,如果未能解决你的问题,请参考以下文章

Websockets 比 WebRTC 快?

websocket在webRTC中的作用是啥?

Webrtc、websockets、Stun/turn 服务器,一起工作?

什么项目将使用 websocket 而不是 webrtc?

使用 Express 和“websocket”包的 WebRTC 信令服务器

WebRTC[38]- WEBRTC 与 WEBSOCKETS 的区别