推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
leo7476040305

关于 socket 的一个问题

  •  
  •   leo7476040305 · Aug 19, 2019 via iPhone · 1924 views
    This topic created in 2483 days ago, the information mentioned may be changed or developed.

    前端 websocket 传给后端的数据格式是这样的: 但我想传给后端的格式是这样的://HANDSHKE\r\n usernme \r\n 前端代码是这样的: 有什么办法可以实现这个吗...

    10 replies    2019-08-20 12:37:33 +08:00
    ysc3839
        1
    ysc3839  
       Aug 19, 2019
    第一个截图是 HTTP/1.1 的协议升级请求,服务器响应后浏览器才会开始发 WebSocket 的数据。
    你需要在后端使用一个 WebSocket 库帮你处理这些请求,最后你可以直接拿到前端发的数据。
    lotmany
        2
    lotmany  
       Aug 19, 2019
    这才是握手阶段 连上了以后才能 send。 或者在 url 拼接参数,会在握手阶段带过去的
    also24
        3
    also24  
       Aug 20, 2019
    WebSocket 不是一个纯粹的 TCP 流,为了兼容 Web 环境,它是带有 HTTP 头部的(或者说握手使用 HTTP 请求)。

    它的名字让许多人产生了误解。
    wd
        4
    wd  
       Aug 20, 2019 via iPhone
    看了几遍都没看懂到底要干啥。z... 前端代码不是都有了么……
    leo7476040305
        5
    leo7476040305  
    OP
       Aug 20, 2019
    @wd 我想要传回后端的数据是不带 http 头的
    xnode
        6
    xnode  
       Aug 20, 2019
    @leo7476040305 websocket 必须是带 http 头的,socket 没有 ,但是浏览器只支持 websocket, 你需要在建立连接之后 过滤掉 http 头
    Chenamy2017
        7
    Chenamy2017  
       Aug 20, 2019
    你貌似在用 websocket 去实现 socket。
    zealot0630
        8
    zealot0630  
       Aug 20, 2019
    安全问题,如果让你浏览器随便使用 socket 访问互联网,任何网站就都可以借用你的浏览器攻击任何他想要攻击的网站。

    所以 WebSocket 是基于 http 封装的,必须包在 http 协议内,通过 http 头实现跨域等权限限制。
    wd
        9
    wd  
       Aug 20, 2019 via iPhone
    后端你需要使用一个 websocket server ....
    leo7476040305
        10
    leo7476040305  
    OP
       Aug 20, 2019
    @Chenamy2017 是这样的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2696 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 10:52 · PVG 18:52 · LAX 03:52 · JFK 06:52
    ♥ Do have faith in what you're doing.