fixed: dubboversion error and consumer heartbeat
diff --git a/packages/dubbo/src/consumer/dubbo.ts b/packages/dubbo/src/consumer/dubbo.ts
index 783e5b9..bbada7e 100644
--- a/packages/dubbo/src/consumer/dubbo.ts
+++ b/packages/dubbo/src/consumer/dubbo.ts
@@ -168,6 +168,9 @@
ctx.application = application;
ctx.isSupportedDubbox = isSupportedDubbox;
+ // set dubbo version
+ ctx.dubboVersion = this._props.dubboVersion;
+
const method = methods[name];
ctx.methodName = name;
ctx.methodArgs = method.call(provider, ...args) || [];
diff --git a/packages/dubbo/src/consumer/queue.ts b/packages/dubbo/src/consumer/queue.ts
index 5c7b2bc..b12fe28 100644
--- a/packages/dubbo/src/consumer/queue.ts
+++ b/packages/dubbo/src/consumer/queue.ts
@@ -27,6 +27,7 @@
import statistics from './statistics';
import {IObservable, TQueueObserver, TRequestId} from '../types';
import {isDevEnv, noop, traceErr} from '../common/util';
+import {DEFAULT_DUBBO_PROTOCOL_VERSION} from '../serialization/constants';
const log = debug('dubbo:queue');
@@ -169,7 +170,10 @@
log(`staring schedule ${requestId}#${dubboInterface}#${version}`);
//merge dubboVersion timeout group
- request.dubboVersion = providerMeta.dubboVersion;
+ request.dubboVersion =
+ request.dubboVersion ||
+ providerMeta.dubboVersion ||
+ DEFAULT_DUBBO_PROTOCOL_VERSION;
request.group = request.group || providerMeta.group;
request.path = providerMeta.path;
try {
diff --git a/packages/dubbo/src/consumer/scheduler.ts b/packages/dubbo/src/consumer/scheduler.ts
index bed1cdf..1b929a8 100644
--- a/packages/dubbo/src/consumer/scheduler.ts
+++ b/packages/dubbo/src/consumer/scheduler.ts
@@ -168,7 +168,7 @@
//if could not find any available socket agent worker
if (!worker) {
- const {requestId, dubboInterface, version, group} = ctx;
+ const {dubboInterface, version, group} = ctx;
const msg = `requestId#${requestId}:Could not find any agent worker with ${dubboInterface}#${version}#${group} agentList: ${agentAddrList.join(
',',
)}`;
diff --git a/packages/dubbo/src/consumer/socket-worker.ts b/packages/dubbo/src/consumer/socket-worker.ts
index acfc842..63fe0f0 100644
--- a/packages/dubbo/src/consumer/socket-worker.ts
+++ b/packages/dubbo/src/consumer/socket-worker.ts
@@ -168,7 +168,6 @@
DecodeBuffer.from(this._socket).subscribe(data => {
if (HeartBeat.isHeartBeat(data)) {
log(`SocketWorker#${this.pid} <=receive= heartbeat data.`);
- this._heartBeat.emit();
} else {
const json = decodeDubboResponse(data);
log(`SocketWorker#${this.pid} <=received=> dubbo result %O`, json);
diff --git a/packages/dubbo/src/serialization/encode-hessian2.ts b/packages/dubbo/src/serialization/encode-hessian2.ts
index f8653a8..0340006 100644
--- a/packages/dubbo/src/serialization/encode-hessian2.ts
+++ b/packages/dubbo/src/serialization/encode-hessian2.ts
@@ -300,7 +300,6 @@
const isSupportAttachment = Version.isSupportResponseAttachment(
this._ctx.request.version,
);
-
if (this._ctx.body.err) {
encoder.write(
isSupportAttachment
diff --git a/packages/dubbo/src/types.ts b/packages/dubbo/src/types.ts
index 26d9caa..8b31855 100644
--- a/packages/dubbo/src/types.ts
+++ b/packages/dubbo/src/types.ts
@@ -93,12 +93,16 @@
register: ((props: IDubboConsumerRegistryProps) => Registry) | string;
//当前要注册到dubbo容器的服务对象
service: Object;
+ dubboSetting: Setting;
isSupportedDubbox?: boolean;
//dubbo调用最大超时时间单位为秒,默认5s
dubboInvokeTimeout?: number;
//dubbo为每个dubbo-agent创建的socketpool数量,默认1
dubboSocketPool?: number;
- dubboSetting: Setting;
+ /**
+ * dubbo protocal version
+ */
+ dubboVersion?: string;
}
//magic, you should use typescript 2.8+