免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3498 | 回复: 8

[其他] HTML5的WebSocket有点脱了裤子放那啥的赶脚 [复制链接]

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-04-02 22:00:3915-16赛季CBA联赛之江苏
日期:2016-04-07 12:09:0015-16赛季CBA联赛之天津
日期:2016-05-04 01:20:19
发表于 2016-03-31 23:04 |显示全部楼层
这货在底层TCP握手连接以后,还要在应用层HTTP握手,然后才能通信,握手还勉强可以忍受,让人难以理解的是收发数据居然还要按照龟腚的格式,这不是穷折腾吗?

前端用WebSocket,后台就必须也要用WebSocket,就是说这货不兼容常规的Socket通信,要独辟蹊径另立山头。如果以前有其他技术做的应用,现在要改成HTML5,后台的服务器也要跟着改,有必要这么玩儿吗?

我觉得其实只需要参考Flash的Socket,封装为面向JS的事件驱动型就可以了,既简单易用,又不失灵活性。

数据格式龟了腚了,现有的后台服务器都不能跟WebSocket通信,真不明白这样做到底有啥好处,我码农不懂大神的心。

论坛徽章:
130
亥猪
日期:2016-05-06 16:12:48水瓶座
日期:2016-05-06 16:13:28白羊座
日期:2016-05-06 16:14:17射手座
日期:2016-05-06 16:14:17巳蛇
日期:2016-05-06 16:13:28午马
日期:2016-05-06 16:12:48辰龙
日期:2016-05-06 16:13:28天蝎座
日期:2016-05-06 16:13:28丑牛
日期:2016-05-06 16:13:28白羊座
日期:2016-05-06 16:13:28水瓶座
日期:2016-05-06 16:13:28未羊
日期:2016-05-06 16:12:48
发表于 2016-04-01 09:33 |显示全部楼层

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
发表于 2016-04-01 10:28 |显示全部楼层
http://stackoverflow.com/questio ... cp-sockets-in-flash

You can't do raw sockets from a web application in a browser. Even "raw" socket connections from Flash are not really raw because you have to answer a policy file request to get CORS security (part of the reason for the WebSockets handshake).

After the initial WebSocket handshake, WebSocket messages have two bytes of framing overhead per frame (Hixie-* has '\x00...\xff' and HyBi-07 has two byte header), so the overhead is pretty negligible compared to regular sockets.

The WebSocket handshake is an HTTP compatible Upgrade request so it is easy to integrate WebSockets support into existing web servers and to use existing Web ports (80/443) which means that WebSocket connection can also more easily integrate into existing firewall rules.

The HTTP compatible handshake also means that existing HTTP authentication mechanisms can work transparently with WebSockets. Also, WebSockets can be proxied by existing web proxies with little or no modification.

In the next revision of the WebSockets protocol rev (HyBi-07), their is protection against misbehaving web intermediaries using client to server XOR masking of the payload data.

Things like auto-reconnection, session ids, etc aren't defined in WebSockets although several Javascript frameworks built on WebSockets have this such as Socket.IO. If you are doing WebSockets from Flash applications then you would need to do your own session management or convert an existing session management library to use WebSockets rather than Flash sockets (such be pretty easy conversion).

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
发表于 2016-04-01 11:03 |显示全部楼层
WebSocket 现在很多网络库都支持啊 但是确实有点恶心

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
发表于 2016-04-01 12:56 |显示全部楼层
W3C want WebSocket to be supported widely.

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
发表于 2016-04-01 13:16 |显示全部楼层
你不觉得让一个webpage随便开socket对你来说太不安全了吗?
websocket本质上就是加了一堆限制的socket,有了这些限制你才敢放心的让它在你的浏览器上跑啊。

你问我为什么不用raw socket?你来说怎么在raw socket加一堆安全认证之类的东西,然后让它还能兼容原来的raw socket?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
发表于 2016-04-02 20:34 |显示全部楼层
windoze 发表于 2016-04-01 13:16
你不觉得让一个webpage随便开socket对你来说太不安全了吗?
websocket本质上就是加了一堆限制的socket,有 ...

这个安全性和普通socket的差别在哪里呢? 加上一些包头造成不能随便建立socket连接任意协议的端口么?

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
发表于 2016-04-02 21:33 |显示全部楼层
回复 7# xinglp

安全性当然是体现在浏览器里啊,你说两个本地程序自建websocket通信……这是怎样一种精神……病啊?
浏览器必须要对网页开连接做点限制,否则一个恶意网页就可能把你的机器或者某个网站搞挂了。浏览器限制网页开websocket的对端,限制连接数,甚至可以限制流量,而且浏览器知道网页在websocket里传输的数据内容,哪怕你用的是SSL websocket,因为SSL是浏览器代劳的。
要是用裸socket做这么多工作不得把浏览器累死,而且还会留下一堆漏洞。

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-04-02 22:00:3915-16赛季CBA联赛之江苏
日期:2016-04-07 12:09:0015-16赛季CBA联赛之天津
日期:2016-05-04 01:20:19
发表于 2016-04-05 00:53 |显示全部楼层
我似乎有些理解大神们的想法了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP