前端 websocket 传给后端的数据格式是这样的: 但我想传给后端的格式是这样的://HANDSHKE\r\n usernme \r\n 前端代码是这样的: 有什么办法可以实现这个吗...
1
ysc3839 2019-08-19 22:38:37 +08:00
第一个截图是 HTTP/1.1 的协议升级请求,服务器响应后浏览器才会开始发 WebSocket 的数据。
你需要在后端使用一个 WebSocket 库帮你处理这些请求,最后你可以直接拿到前端发的数据。 |
2
sunsulei 2019-08-19 23:18:10 +08:00
这才是握手阶段 连上了以后才能 send。 或者在 url 拼接参数,会在握手阶段带过去的
|
3
also24 2019-08-20 00:00:11 +08:00
WebSocket 不是一个纯粹的 TCP 流,为了兼容 Web 环境,它是带有 HTTP 头部的(或者说握手使用 HTTP 请求)。
它的名字让许多人产生了误解。 |
4
wd 2019-08-20 07:00:00 +08:00 via iPhone
看了几遍都没看懂到底要干啥。z... 前端代码不是都有了么……
|
5
leo7476040305 OP @wd 我想要传回后端的数据是不带 http 头的
|
6
xnode 2019-08-20 09:05:41 +08:00
@leo7476040305 websocket 必须是带 http 头的,socket 没有 ,但是浏览器只支持 websocket, 你需要在建立连接之后 过滤掉 http 头
|
7
Chenamy2017 2019-08-20 09:38:03 +08:00
你貌似在用 websocket 去实现 socket。
|
8
zealot0630 2019-08-20 11:23:04 +08:00
安全问题,如果让你浏览器随便使用 socket 访问互联网,任何网站就都可以借用你的浏览器攻击任何他想要攻击的网站。
所以 WebSocket 是基于 http 封装的,必须包在 http 协议内,通过 http 头实现跨域等权限限制。 |
9
wd 2019-08-20 11:48:44 +08:00 via iPhone
后端你需要使用一个 websocket server ....
|
10
leo7476040305 OP @Chenamy2017 是这样的
|