wechaty-electron 把你的wechaty 变成客户端

本文介绍了如何使用wechaty和electron结合创建一个微信转播客户端,避免长时间运行导致的网页卡死问题。通过electron实现客户端,可以方便地与wechaty交互,提供更好的用户体验。文章还分享了在实现过程中遇到的挑战,如puppeteer的出现带来的接口不兼容问题,以及对未来wechaty插件化的设想。
摘要由CSDN通过智能技术生成

初识wechaty

去年的这个时候,我刚到现在的公司任职,发现同事正在用微信做转播,就是把几个微信群里有价值的发言同步到其他几个群里,同时还要存入数据库以便在论坛上也能看到相关讨论。当时同事用的是chrome插件的方式,那是第一次知道微信还可以这么玩。惊奇的同时我也发现了一个很严重的问题,就是插件跑一段时间,网页就卡死了,就得重启。 于是我在网上找不同的解决方案,github 真是一个神奇的地方,很快我就找到了好几个版本的微信机器人,人气最高的当属wechaty,另外还有一个比较看好的是一个python的项目。由于本人对nodejs 对偏爱,选择了wechaty。

为什么要electron

从Qt到Adobe的AIR,一直未放弃过使用js和html开发桌面应用的尝试和实践,直到出现了electron。我感觉总算出现了一个完美的方案。当然还有NW.js, NW也是一个不错的解决方案。最初NW做的并不如electron,这也导致了我并没有对NW继续关心。不过目前看来NW.js 已经完全具备了与electron 一争高下的实力。 找到了wechaty,我的项目才刚刚开始,由于转播过程需要人为的实时干预,甚至当一些bug出现的时候需要手动操作来纠正(当时wechaty还不能发图片,需要手动转发)。如此一来,在服务器端部署wechaty的愿望被打破了。如果能用electron 做个客户端就好了,直接发给运维,解放程序员,就是解放生产力。electron 本身就是在pc端运行node环境,完全符合wechaty的运行环境要求。

wechaty-electron 最初的想法

很快我的项目进入了实施阶段,wechaty的api 确实非常简单。一个微信转播的客户端很快就完成了,并且实现了与网站上文字直播的互动。

启动界面:选择服务器,并选择一个直播间

图1

操作界面,选择要共享的群,可以使用正则表达式来过滤不想同步的消息,只看嘉宾功能提供单向转播。

图2

web端:微信里的用户发言会直接发布到文字直播间,被标注为微信用户,并显示微信头像。相当于多个群的成员可以共享消息

图3

微信群: 可以选择把信息分发到所有到群里

图4

唯一让我不满足的是,使用electron 客户端启动wechaty 仍然要打开一个网页来登录微信。 electron 本身就是基于chrome内核的。浏览器能做的它都能做,浏览器不能做的,它也能做。完全没有必要启动一个webdriver来登录微信。只需要new 一个window 或者打开一个webwiew 即可代替 浏览器,并且可以随心所欲的隐藏显示。wechaty只需要关心与electron 的webcontent 交互即可。另外,electron 本地代码与webcontent交互更加方便,除了完善的网页事件,更有ipcMain 和ipcRenderer 交互机制。wechaty 完全不必再额外启动一个express server 来建立socket 通道(当时没有puppeteer)。更有价值的一点是,wechaty 可以拥有一个随时随

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值