事情的背景是这样的:我们办公时要同时使用本地的电脑(编码、文档等)和一个远程桌面(用于一些运维操作,程序 debug 等,这个远程桌面是部署在服务器上的,通过华为的 AccessClient 连接),本地电脑可以文本到远程桌面服务器,但是反过来不可以,因此我想到了一个方法来实现从远程桌面将文本(后续可能做文件的)复制到办公电脑的办法,整体架构图如下:
其实就是靠 ditto 把剪贴板的内容持久化到 sqlite 中,我自己在远程桌面端启动一个客户端去监听 sqlite 的 Main 表中的插入记录中的 mText 字段,mText 中存储内容大致如下:
然后将内容推送到一台办公电脑和远程桌面都能连接的,运行着 kafka 的服务器上,然后办公电脑端启动一个客户端去消费 kafka 的某个 topic ,并同步到本地客户端,用户就可以选择要粘贴的内容了。
但是还有几个细节需要问问大家:1 、关于生产 /消费到到哪个 topic ,是否还需要一个程序去确定和同步 topic 的信息? 2 、消息内容虽然可以通过 kafka 提供的 tls 加密保证不被窃取,但是怎么不保证有人故意去连接别的 topic 去获取他人的剪贴板内容,即如何保证生产和消费的两个客户端都只能消费特定的 topic ? 3 、关于语言,我想用 Go 实现上述的功能,原因是:( 1 )单文件,依赖少,方便部署;( 2 )破解的难度相比如脚本语言高一些;( 3 )可跨操作系统编译,大家觉得可以吗?
请大家说说这个思路的可行性和不足之处,十分感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.