V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
leo7476040305
V2EX  ›  JavaScript

关于 socket 的一个问题

  •  
  •   leo7476040305 · 2019-08-19 19:52:41 +08:00 via iPhone · 1422 次点击
    这是一个创建于 1922 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    所以 WebSocket 是基于 http 封装的,必须包在 http 协议内,通过 http 头实现跨域等权限限制。
    wd
        9
    wd  
       2019-08-20 11:48:44 +08:00 via iPhone
    后端你需要使用一个 websocket server ....
    leo7476040305
        10
    leo7476040305  
    OP
       2019-08-20 12:37:33 +08:00
    @Chenamy2017 是这样的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   919 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 22:04 · PVG 06:04 · LAX 14:04 · JFK 17:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.