【发布时间】:2013-07-15 17:41:08
【问题描述】:
是否可以通过 websocket 或使用 webrtc 的数据通道逐个字符发送(将来)?我正在寻找两个或多个浏览器之间的实时文本通信,并由多个用户并行编辑文本。例如:一个人写一个文本(一个字符一个字符),另一个同时更正相同的文本。
谢谢
【问题讨论】:
标签: javascript html websocket webrtc
是否可以通过 websocket 或使用 webrtc 的数据通道逐个字符发送(将来)?我正在寻找两个或多个浏览器之间的实时文本通信,并由多个用户并行编辑文本。例如:一个人写一个文本(一个字符一个字符),另一个同时更正相同的文本。
谢谢
【问题讨论】:
标签: javascript html websocket webrtc
好吧,我没有使用过 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 或input 事件。 input 更好,因为它只在真实输入时触发,而keyUp 在每次按键(回车,箭头)时触发。如果在您的应用程序中用户只能输入文本或只能删除最后一个字符,那么您根本不需要位置,您只需要有两种消息类型,一种用于输入,一种用于删除。如果您的用户可以在任意位置编辑文本,那么它会变得更加困难,但您可以在 Stackoverflow 上搜索如何获取光标位置和字符位置