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+