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

前端 socket 相关求助

  •  
  •   bury · 2023-08-23 19:08:58 +08:00 · 758 次点击
    这是一个创建于 460 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个 websocket 的地址,apifox 上可以建立连接,在网页中连接就会报错,不是很懂,求助一下有没有了解的兄弟
    报错如下:
    WebSocket connection to 'ws://192.168.31.102:1002/socket/line' failed:
    5 条回复    2023-08-24 13:01:13 +08:00
    lovelylain
        1
    lovelylain  
       2023-08-23 19:20:00 +08:00
    网页是不是 https 的? https 只能连 wss ,不能 ws
    ovoo
        2
    ovoo  
       2023-08-23 19:44:29 +08:00
    猜测是浏览器跨域规则限制的:
    192.168.31.102 是一个私有地址,从公共页面请求私有服务的数据,或者从私有服务请求本地数据,都会触发浏览器跨域限制。

    其它类似限制还有 :

    从公共服务访问私有服务

    从公共服务访问本地服务

    从私有服务访问本地服务


    解决方案:

    1. 把页面升级为 https 可以不受上述规则限制 ,但 https 页面不能访问 ws ,所以不适用

    2. 把页面部署到私有地址上并通过 IP 访问
    bury
        3
    bury  
    OP
       2023-08-24 09:10:47 +08:00
    @lovelylain http 的
    bury
        4
    bury  
    OP
       2023-08-24 09:21:14 +08:00
    @ovoo 通过本地的 vue 服务过过 ip 访问也不可以
    julyclyde
        5
    julyclyde  
       2023-08-24 13:01:13 +08:00
    websocket 和 socket 根本两码事
    websocket 依法没有粘包问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1137 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:56 · PVG 06:56 · LAX 14:56 · JFK 17:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.