热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

html5-用php写了个WebSocket服务端,在IE下出现了问题

在火狐运行正常,IE和chrome却出现问题。IE下握手成功后,send()信息给服务端,服务端用socket_write原样返回信息给IE触发不了onmessage事件,反而触发了onclose事件。这几天一直在为这个问题烦恼...

在火狐运行正常, IE 和 chrome 却出现问题。
IE 下握手成功后, send()信息给服务端,服务端用 socket_write 原样返回信息给 IE 触发不了 onmessage 事件,反而触发了 onclose 事件。这几天一直在为这个问题烦恼。
有大神可以为在下解答吗
chrome的截图
下方的红字是:WebSocket connection to 'ws://127.0.0.1:1199' failed: A server must not mask any frame taht ie send to the client.

百度里找到位和我一样问题的人:
send函数是指socket_send或socket_write吗?如果是$mask参数在哪?

回复内容:

在火狐运行正常, IE 和 chrome 却出现问题。
IE 下握手成功后, send()信息给服务端,服务端用 socket_write 原样返回信息给 IE 触发不了 onmessage 事件,反而触发了 onclose 事件。这几天一直在为这个问题烦恼。
有大神可以为在下解答吗
chrome的截图
下方的红字是:WebSocket connection to 'ws://127.0.0.1:1199' failed: A server must not mask any frame taht ie send to the client.

百度里找到位和我一样问题的人:
send函数是指socket_send或socket_write吗?如果是$mask参数在哪?

IE 下握手成功后, send()信息给服务端, 服务器端可以打印出来这个信息吗?

建议先chrome上试试,IE上可能略怪,socket可能会被降级成别的方式

http://stackoverflow.com/questions/16932...

随便返回个其他的字符串试试看

现在版本(13)的websocket是会把客户端send()的信息做mask处理,据说是转换成二进制,然后传给服务端。所以服务端要是直接echo客户端传来的信息是会显示乱码的。想要正常显示要转换,同样服务端传给客户端的信息也要经过处理,具体原理我还不是很清楚,这是我花费了几天所总结出的答案,具体过程要看网上给出的例子。
ps:果然英语对程序员来说很重要。

推荐阅读
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文讨论了同事工资打听的话题,包括同工不同酬现象、打探工资的途径、为什么打听别人的工资、职业的本质、商业价值与工资的关系,以及如何面对同事工资比自己高的情况和凸显自己的商业价值。故事中的阿巧发现同事的工资比自己高后感到不满,通过与老公、闺蜜交流和搜索相关关键词来寻求解决办法。 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 熟练掌握Spring Cloud,终于成为Java工程师的面试门槛 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 面试:Websocket简介WebSocket是一种与HTTP不同的协议。两者都位于OSI模型的应用层,并且都依赖于传输层的TCP协议。虽然它们不同& ... [详细]
  • 大厂首发!思源笔记docker
    JVMRedisJVM面试内存模型以及分区,需要详细到每个区放什么?GC的两种判定方法GC的三种收集方法:标记清除、标记整理、复制算法的 ... [详细]
  • 【系列二】长连接,短连接及WebSocket介绍(含http1.0,1.1,2.0相关)
    前言上一节讲了长轮询和轮询及其实现,这节讲一讲长连接、短连接及webSocket,在讲这些之前,我们先来普及一下http相关的一 ... [详细]
  • Mosquitto常用命令
    1mosquitto服务器的搭建服务器这里使用了阿里云的服务器,mosquitto默认需要1883的TCP入端口。需要在安全策略里设置一下。端口当然也可以选其他端口进 ... [详细]
  • Django3 使用 WebSocket 实现 WebShell
    △点击上方“Python猫”关注,回复“1”领取电子书剧照:《眷思量》作者:从零开始的程序员生活来源:https:www.c ... [详细]
author-avatar
兔帽儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有