当前位置:   article > 正文

WebSocket发送与接收数据_websocket传对象

websocket传对象

创建websocket对象,参数为服务器websockets地址:

websocket = new WebSocket("ws:127.0.0.1:7001");

1、发送文本数据

websocket.send('我太笨了,不知道你说的是啥')

2、发送对象数据

发送对象的话需要通过 JSON.parse() 和JSON.Stringify()来转换成字符串发送,接收到之后解析字符串来实现,当然还有其他的方式,只要把对象转成字符串就可以发送:

  1. websocket.onmessage = (event) => {
  2. let data = JSON.parse(event.data) ;
  3. console.log(data);
  4. }
  5. websocket.send(
  6. JSON.Stringify({
  7. title:'发送对象数据',
  8. time+new Date()
  9. })
  10. )

3、发送与接收原始二进制数据

除了能发送文本信息和普通对象信息之外,还可以发送ArrayBuffer对象和Blob对象;接收ArrayBuffer和Blob对象的时候需要把类型设置成arraybuffer和blob才可以接收,下面看一个示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
  5. Your browser does not support the HTML5 canvas tag.
  6. </canvas>
  7. <script>
  8. let websocket = new WebSocket("ws:127.0.0.1:7001");
  9. let ctx=document.getElementById("myCanvas").getContext("2d");
  10. let imgData=ctx.getImageData(10,10,50,50);
  11. let binary = new UnitArray(imgData.data.length);
  12. for(let i = 0; i<imgData.data.length;i++){
  13. binary[i] = imgData.data[i];
  14. }
  15. //发送数据
  16. websocket.send(binary.buffer);
  17. //接收数据
  18. websocket.binaryType = "arraybuffer";
  19. websocket.onmessage = (event) => {
  20. let data = JSON.parse(event.data) ;
  21. console.log(event.data.byteLength);
  22. }
  23. </script>
  24. </body>
  25. </html>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/999638
推荐阅读
  

闽ICP备14008679号