当前位置: 首页 > news >正文

站长统计app扬州网官方微博

站长统计app,扬州网官方微博,海南映客交友软件,建立企业网站步骤最近在学习go websocket的时候#xff0c;在学习实验过程遇到一个比较奇怪问题。为什么我的数据返回是blob#xff0c;而不是arrayBuffer#xff1f;百思不得其解。 直到同事打包的时候微信小游戏遇到了一个报错。FileReader不支持。 经过在社区查询#xff0c;官方答复是…最近在学习go websocket的时候在学习实验过程遇到一个比较奇怪问题。为什么我的数据返回是blob而不是arrayBuffer百思不得其解。 直到同事打包的时候微信小游戏遇到了一个报错。FileReader不支持。 经过在社区查询官方答复是支持只是arraybuffer /string。那样在coco creator 调试的时候为什么返回的是blob 而在微信的开发工作发现返回是Arraybuffer。 1.问题实验追踪 在今晚我尝试做了一个实验在结合gpt 交流发现一个问题。首选我们以这样一个小案例进行实验。监听8080的端口然后返回的时候进行打印。 !DOCTYPE html html langen headmeta charsetUTF-8titlewebSocket 返回类型问题/title /head body script typetext/javascriptconst socket new WebSocket(ws://localhost:8080);socket.onmessage (event) {if (event.data instanceof ArrayBuffer) {// 返回ArrayBuffer数据const arrayBuffer event.data;// 打印二进制数据console.log(接收的二进制数据:, arrayBuffer);}}; /script /body /html在第一次返回的时候监听这个数据返回类型是Blob。的确是Blob类型。 好进行第二次的设置修改上述的代码加入了一个属性。 socket.binaryType “arraybuffer”; 设置返回类型。 !DOCTYPE html html langen headmeta charsetUTF-8titlewebSocket 返回类型问题/title /head body script typetext/javascriptconst socket new WebSocket(ws://localhost:8080);socket.binaryType arraybuffer; //加入binaryType 指定返回类型socket.onmessage (event) {if (event.data instanceof ArrayBuffer) {// 返回ArrayBuffer数据const arrayBuffer event.data;// 打印二进制数据console.log(接收的二进制数据:, arrayBuffer);}}; /script /body /html然后再次查看返回数据结果返回的类型变化了。猜测是只要设置了就能够返回指定数据。在没有设置类型的时候默认是Blob类型。 看似简单的一个问题没有留意就突然不知道怎么解释。以下为go测试代码。通过这样快速检测数据则可以指定对应类型返回。 package mainimport (fmtgithub.com/gorilla/websocketlognet/http )var upgrader websocket.Upgrader{CheckOrigin: func(r *http.Request) bool {return true}, }func main() {http.HandleFunc(/, onMessage)err : http.ListenAndServe(:8080, nil)if err ! nil {log.Fatal(err)} }func onMessage(w http.ResponseWriter, r *http.Request) {conn, err : upgrader.Upgrade(w, r, nil)if err ! nil {fmt.Println(err)return}defer conn.Close()data : make([]byte, 2)data[0] 1data[1] 2//发送 给客户端err conn.WriteMessage(websocket.BinaryMessage, data)if err ! nil {fmt.Println(err)return} } 当h5 返回的是Blob的时候应该如何读取改造一下读取方式。采用FileReader的方式进行读取。这样就可以满足到2种类型处理了。 !DOCTYPE html html langen headmeta charsetUTF-8titlewebSocket 返回类型问题/title /head body script typetext/javascriptconst socket new WebSocket(ws://localhost:8080);//socket.binaryType arraybuffer; //加入binaryType 指定返回类型socket.onmessage (event) {if (event.data instanceof ArrayBuffer) {// 返回ArrayBuffer数据const arrayBuffer event.data;// 打印二进制数据console.log(接收的二进制数据:, arrayBuffer);}else if(event.data instanceof Blob){readBlob(event.data)}};function readBlob(blob){const reader new FileReader();reader.onload (event) {// 获取读取的结果const result event.target.result;if (result instanceof ArrayBuffer) {const arrayBuffer result;// 打印二进制数据console.log(接收的二进制数据:, arrayBuffer);} else {console.error(Failed to read Blob as ArrayBuffer.);}};reader.readAsArrayBuffer(blob);} /script /body /html同理这样可以解析到一个问题。数据返回需要设置一下就能返回指定的类型在没有指定的时候就默认是Blob。而刚碰见微信小游戏不支持FileReader引发报错而微信小游戏返回是直接ArrayBuffer。 这样就能解释并非引擎的问题。只是一个属性参数忘记设置导致的。 好了。今晚实验到此为止。
http://www.sadfv.cn/news/155512/

相关文章:

  • 网站建设佰首选金手指二七负责公司网站产品的开发及整理
  • 个人网站域名怎么起网站备案后更换主机
  • 如何自己做解析网站php网站开发实例电子版
  • 龙华网站 建设信科网络微信公众平台开发源代码
  • 山东省建设职业教育集团网站怎么制作属于自己的app
  • 用凡科做的手机网站版wordpress 仪表盘美化
  • 网页与网站的区别是什么手机网站开发session
  • Dw怎么做网站往里面加标题和字网站建设常见故障
  • 西南交通建设集团网站如何自己注册域名
  • 定制网站多少钱网站搭建关键词排名
  • 制作网站品牌公司哪家好如何开发手机网站
  • 增城网站建设服务网站开发设计制作合同
  • 心理咨询类微网站怎么做网络推广文章的方法
  • 建设开源社区网站什么意思设计一个外贸网站需要多少钱
  • 苏州商城网站建设网站keywords标签怎么写
  • 公司门户网站项目模版龙游县建设局网站
  • 有关网站开发的论文什么网站做h5没有广告
  • 站长工具流量统计影楼网站服务
  • 在哪里推广网站wordpress无法打开备份
  • 做网站看百度脸色夏津网站建设价格
  • 校园网上零售网站建设方案wordpress get_post_mime_type
  • 潍坊网站的优化学术网站建设
  • 男孩子和男孩子在一起怎么做网站利尔化学股票最新消息
  • php网站开发套模板网站建设盈利模式
  • wap网站优化免费学生网页制作成品
  • 天河建设网站多少钱深圳相框制作
  • 连接外国的网站吗wordpress多文件传递变量
  • 网站建设需要下载哪些软件文化建设
  • 苏州制作企业网站的做一个自我介绍的网页
  • 成都网站建设小公司wordpress 付款查看