Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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
Javascript pubsub订阅服务器中出错:超过最大消息大小_Javascript_Node.js_Gcloud_Google Cloud Pubsub - Fatal编程技术网

Javascript pubsub订阅服务器中出错:超过最大消息大小

Javascript pubsub订阅服务器中出错:超过最大消息大小,javascript,node.js,gcloud,google-cloud-pubsub,Javascript,Node.js,Gcloud,Google Cloud Pubsub,我正在使用GoogleCloudPubSub进行我的应用程序。pubsub主题的订阅服务器是用Javascript编写的,并在NodeJ上运行。我使用的是谷歌提供的官方pubsub客户端 代码如下所示: var topic = gcloud.pubsub({projectId: 'myProjectId'}).topic('topicName'); var pubsub = gcloud.pubsub({projectId: 'myProjectId'}); var sub = pubsub.s

我正在使用GoogleCloudPubSub进行我的应用程序。pubsub主题的订阅服务器是用Javascript编写的,并在NodeJ上运行。我使用的是谷歌提供的官方pubsub客户端

代码如下所示:

var topic = gcloud.pubsub({projectId: 'myProjectId'}).topic('topicName');
var pubsub = gcloud.pubsub({projectId: 'myProjectId'});
var sub = pubsub.subscription('subName', {topic: topic});
sub.on('error', function(err) { console.error(err); });
sub.on('message', messageHandler);
我的错误处理程序不断被触发,并显示以下错误消息:

Error: Max message size exceeded
Received message larger than max (10406691 vs. 4194304)
首先,这是一条非常奇怪的消息,用户会收到它。如果消息太大,则应在发布时将其拒绝

更重要的是,我的订户似乎在某个时候去世了。它一直在处理这些消息,直到出现大约80个错误,然后才停止。消息处理程序再也不会被调用

我怎样才能解决这个问题

将SDK版本更新为0.46.1。新错误消息:

Error: Max message size exceeded
Received message larger than max (10406691 vs. 4194304)

这可能是Node.js发布/订阅客户端库中的一个错误,其中gRPC通道上未设置max_receive_message_length属性。在这种情况下,“消息大小”不是指发布到发布/订阅的消息的大小(根据具体情况,最大可达10MB),而是指发送到gRPC中请求的响应中允许的消息大小。我建议在中创建一个问题

同时,您可以尝试将上的maxInProgress属性设置为一个较小的数字,这将强制订阅者提取较小的消息批,从而使响应更小。当前,如果未指定,单个响应中的最大消息数默认为1000。但是,如果您的邮件很大,这可能没有帮助