Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Eventlet+;Javascript-Websocket返回Blob_Javascript_Python_Json_Websocket_Eventlet - Fatal编程技术网

Python Eventlet+;Javascript-Websocket返回Blob

Python Eventlet+;Javascript-Websocket返回Blob,javascript,python,json,websocket,eventlet,Javascript,Python,Json,Websocket,Eventlet,我正在试验Python的Eventlet Websocket支持,使用: 我不打算在Javascript中包含整个websocket处理程序,只包括ws.onmessage方法: ws.onmessage = function (evt) { console.log(evt.data) var received_msg = evt.data; #Do stuff, i.e var obj = JSON.parse(received_msg) #callback(obj)

我正在试验Python的Eventlet Websocket支持,使用:

我不打算在Javascript中包含整个websocket处理程序,只包括
ws.onmessage
方法:

ws.onmessage = function (evt)
{
   console.log(evt.data)
   var received_msg = evt.data;
   #Do stuff, i.e var obj = JSON.parse(received_msg)
   #callback(obj)
};
console.log(evt.data)
表示与websocket的连接成功(您可以假设这一切都正常)。但是,日志显示
Blob{size:31,type:“}
作为
evt.data
的内容。我假设这是一种被解释为二进制(文件)数据的响应对象(尽管我可能完全错了),但我不确定该怎么处理它

我发现Blob数据通常是类似文件的对象的数据类型。我想我可以这样做,但我真的只想来回发送json数据。我曾尝试将dict作为JSON转储并发送,但它也做了同样的事情。即使是字符串也是以Blob格式接收的


如何使用
eventlet
进行json数据传输?

自2017-05年起,eventlet websocket API不支持字符串websocket帧。补丁是受欢迎的,很简单

您的选择:

  • 读取javascript端的Blob
  • 使用另一个websocket库(纯Python实现可以与Eventlet修补配合使用)
  • 向Eventlet websocket库添加字符串框架支持

自2017-05年起,Eventlet websocket API不支持字符串websocket框架。补丁是受欢迎的,很简单

您的选择:

  • 读取javascript端的Blob
  • 使用另一个websocket库(纯Python实现可以与Eventlet修补配合使用)
  • 向Eventlet websocket库添加字符串框架支持

第一个选项非常简单,我成功地测试了它。您知道创建文件读取器是一个昂贵/缓慢的过程吗?谢谢1) 想一想你将如何实现它,分配一个缓冲区听起来似乎是合理的2)当然,它消耗了一些可测量的资源-浏览器现在提供了大量的调试工具3)这一数量是否与您的应用程序相关-这不能由一个随机的互联网用户来判断,他没有看到您的应用程序4)上述组合,你真的在寻求一条令人安慰的路线而不是技术性能问题吗?Lennart,一切都会好的,请继续你的项目。第一个选项非常简单,我成功地测试了它。您知道创建文件读取器是一个昂贵/缓慢的过程吗?谢谢1) 想一想你将如何实现它,分配一个缓冲区听起来似乎是合理的2)当然,它消耗了一些可测量的资源-浏览器现在提供了大量的调试工具3)这一数量是否与您的应用程序相关-这不能由一个随机的互联网用户来判断,他没有看到您的应用程序4)上述组合,你真的在寻求一条令人安慰的路线而不是技术性能问题吗?Lennart,一切都会好的,请继续你的项目。
ws.onmessage = function (evt)
{
   console.log(evt.data)
   var received_msg = evt.data;
   #Do stuff, i.e var obj = JSON.parse(received_msg)
   #callback(obj)
};