通过 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吗? 您需要监听keyUp
或input
事件。 input
更好,因为它只在真实输入时触发,而keyUp
在每次按键(回车,箭头)时触发。如果在您的应用程序中用户只能输入文本或只能删除最后一个字符,那么您根本不需要位置,您只需要有两种消息类型,一种用于输入,一种用于删除。如果您的用户可以在任意位置编辑文本,那么它会变得更加困难,但您可以在 *** 上搜索如何获取光标位置和字符位置以上是关于通过 websocket 或使用 WebRTC 的数据通道逐个字符发送?的主要内容,如果未能解决你的问题,请参考以下文章
Webrtc、websockets、Stun/turn 服务器,一起工作?