V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
smith123
V2EX  ›  问与答

请教大佬们一个问题,关于如何在 shell 脚本中使用 websocket 和一个 http code 的问题

  •  
  •   smith123 · 2022-09-13 21:15:50 +08:00 · 985 次点击
    这是一个创建于 583 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前已经在 java 后端实现了 websocket ,但现在需要通过 shell 脚本来执行 websocket 的各种操作,比如连接 websocket , 发送消息到服务端,心跳,接收服务端发送的消息。请问应该怎么弄?找了一圈都是基于浏览器实现的,却没有通过 shell 脚本能实现的,请问各位大佬有啥思路吗?

    另外再请教个问题,在没后端有主动设置 http code 的情况下,什么情况下 http code 会返回 201 ?

    8 条回复    2022-09-14 12:03:53 +08:00
    Mutoo
        1
    Mutoo  
       2022-09-13 21:30:53 +08:00 via iPhone
    试试 google 的 zx shell
    EridanusSora
        2
    EridanusSora  
       2022-09-13 21:35:35 +08:00
    何必难为自己。。写个 python 或者 js 脚本用 shell 启动,不好吗
    smith123
        3
    smith123  
    OP
       2022-09-13 21:45:27 +08:00
    @EridanusSora 因为平台问题,只能用 shell 脚本,本打算用 curl ,但是发现根本无法发送消息和维持心跳。。。
    Jirajine
        4
    Jirajine  
       2022-09-13 21:46:13 +08:00
    Tink
        5
    Tink  
       2022-09-14 01:01:13 +08:00 via iPhone
    bugfan
        6
    bugfan  
       2022-09-14 01:43:02 +08:00
    @smith123 😁curl 可以再 websocket 链接上持续的收消息。但是不能直接在这个 websocket 链接上发消息,如果想实现此功能的话有两种方式,1 是装一些额外的程序比如楼上说的。2 是通过 curl 发送 http 请求到 server,这样的好处是不用安装任何东西(因为现在系统基本都内置了 curl)。

    可以参考 https://github.com/bugfan/i996 里面的 shell 代码,基本上一整套交互都有了,版本 1 共 200 行 shell 代码,版本 2 大概 100 多行。你读一下版本 1 的代码应该能满足你,纯 shell 实现的。

    201 状态码一般代表创建成功,比如你 post 一个注册用户的表单,正常应该返回 201,实际在数据库了一条记录。
    winglight2016
        7
    winglight2016  
       2022-09-14 09:42:03 +08:00
    @bugfan 看了大佬的这个项目,名字和内容完全不相关吗?

    btw ,看 readme 没搞明白,内网服务端是怎么配置?有没有 docker 版本? ssh 是怎么访问的?有没有例子可以看看?
    bugfan
        8
    bugfan  
       2022-09-14 12:03:53 +08:00
    @winglight2016 😁对,名字和内容不想关哈哈哈,就是一个内网穿透,然后起名字叫 i996 。

    其实就是 readme 的那三步,按照顺序操作就行。没有 docker 版本,这个东西就是给用户做内网穿透用的。配置内网地址就是在公众号回复设置里面设置就行了。i996 支持 tcp 了,所以转发 ssh 也没问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   993 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:40 · PVG 03:40 · LAX 12:40 · JFK 15:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.