【已实现】继续发布任务,谁有兴趣帮虎绿林写个内信和@消息的WebSocket推送服务

@Ta 2023-03-08发布,2023-03-19修改 74257点击

因为有很多用户进行@消息轮询,虎绿林开始变卡了,所以有必要切换到WebSocket推送。

编程语言不限,需要实现用户身份认证(基于http cookie hu60_sid,应该可以获取到吧)。

参考这个微信推送服务,连接阿里 canal 来获取内信和@消息的实时通知:
https://github.com/hu60t/hu60wap6/blob/master/src/service/wechat-push.php

部署测试环境的方法可以参考 https://hu60.cn/q.php/bbs.topic.102524.html
【可选】步骤21:微信推送服务里面提到了如何部署阿里canal。

回复列表(56|隐藏机器人聊天)
  • @Ta / 2023-03-08 / /

    如果有人能帮虎绿林做个测试环境的docker镜像,那就再好不过了。我没时间做。

  • @Ta / 2023-03-08 / /

    关于 @rkonfj 之前提到的ChatGPT机器人功能设想:

    该系统可以分为两个模块。一个模块负责维护应用层的用户会话并实现通用的聊天api(REST 或者 WebSocket ),可以暂且称为 chat-server;另一个模块负责和ChatGPT网页chat-server模块交互,暂且称为chat-agent(即为老虎你现在在做的油猴脚本)。
    每个拥有 OpenAI 的账号都可以运行chat-agentchat-server拥有所有agent的信息,可以在收到新会话时分配给不同的agent去处理。

    如果有人有兴趣,也可以集成在WebSocket推送服务里。比如,推送服务可以把某些uid的@消息设置为公开可见,所有人都可以订阅它的消息。然后它有消息过来时,随机选择一个订阅者发送,然后这个订阅者就可以通过同一连接回复该消息。如果某个订阅者成功回复了消息,此后对于同一用户发来的@消息,都优先转发给这个订阅者(以便保持用户的会话记忆),直到这个订阅者下线。

    这样就能实现任何人都能接入机器人了。

    不过为了防止滥用,还是需要对用户进行身份认证。用户首先得是一个合法的虎绿林用户,才能订阅机器人消息。这样如果有人捣乱,可以根据uid拒绝他接入。此外,还需要设计为只有收到消息的连接才可以回复,并且收到一条消息只能回复一条消息。还可以设计一个功能,当用户发送类似“屏蔽当前机器人”之类的内容时,给他换个机器人。

  • @Ta / 2023-03-09 / /

    @胡椒舰长 提供了一个新思路,我们其实可以搭建一个单独的WebSocket推送服务,然后再把 https://github.com/hu60t/hu60wap6/blob/master/src/service/wechat-push.php 改造一下,让它使用stream_socket_send发送到websocket推送服务,这个推送服务再发送给用户。

  • c
    @Ta / 2023-03-09 / /
    @老虎会游泳,这个程序是挂第三方还是你的机器上呢,如果是你的机器上可以直接操作mysql,或者再给虎绿林再构建一个模块,用户账号密码通用就行了
  • @Ta / 2023-03-09 / /

    @c,我的机器上

  • @Ta / 2023-03-09 / /

    @c,目前的需求是,对于@消息,应该从ali canal处获取新消息推送,不能轮询MySQL。进行用户身份认证的时候可以查询MySQL。

  • c
    @Ta / 2023-03-09 / /
    @老虎会游泳,那可以考虑做个聊天室模块,然后共享local密码鉴权,实际上你的机器只跑websocket agent
  • @Ta / 2023-03-09 / /

    @c,目前的需求是,使用cookie中的hu60_sid进行用户身份认证和用户隔离。

  • @Ta / 2023-03-13 / /
    老虎可以弄一个开发者设置,把消息推送到设置的url里面,跟公众号类似的
  • @Ta / 2023-03-14 / /

    @老虎会游泳@xggz
    一加8Pro

  • @Ta / 2023-03-14 / /

    @罐子@xggz,你们有兴趣可以对微信推送程序进行改造,添加该功能。

  • @Ta / 2023-03-14 / /

    websocket服务器也可以基于微信推送程序进行改造。

  • @Ta / 2023-03-15 / /
    虎60的提醒信息保存多久啊,chat给出的代码段,很有作用,如果想想以后查阅,会被清空吗
  • @Ta / 2023-03-15 / /
    还有我用的比较频繁,我想赞助你一些费用,这样我一直用都不好意思
  • @Ta / 2023-03-15 / /
    @张小强,提醒消息理论一直保留,聊天室里的对话记录可能会被清空,但是ChatGPT艾特你的提醒消息会一直保留在你的提醒界面里。
  • @Ta / 2023-03-15 / /
    @张小强,你可以用这个笔记插件存起来啊!https://hu60.cn/q.php/bbs.topic.104572.html
  • @Ta / 2023-03-15 / /
    @老虎会游泳,还有我用的比较频繁,我想赞助你一些费用,这样我一直用都不好意思
  • @Ta / 2023-03-15 / /
    @TabKey9,稳不稳
  • @Ta / 2023-03-15 / /

    @张小强,等@hu60bot的费用耗尽我们再考虑赞助的问题

添加新回复
回复需要登录