2017-05-02 60 views
1

我正在使用DirectLineJS通過網站從自定義網絡聊天中進行comminucate。我使用的是微軟的github上https://github.com/Microsoft/BotFramework-DirectLineJSDirectLineJS接收Bot回覆的副本

貼我怎麼把它實現的格式

var directLine; 
    directLine= new DirectLine.DirectLine({ 
     secret: "My_DirectLine_Secret", 
    }); 

    function sendReceiveActivity(msg) { 
     document.getElementById("inputtext").value = ""; 
     conversation.innerHTML = conversation.innerHTML + "ME - " + msg + "<br/><br/>"; 

     directLine.postActivity({ 
      from: { id: 'myUserId', name: 'myUserName' }, // required (from.name is optional) 
      type: 'message', 
      text: msg 
     }).subscribe(
      id => console.log("Posted activity, assigned ID ", id), 
      error => console.log("Error posting activity", error) 
      ); 

     directLine.activity$ 
      .filter(activity => activity.type === 'message' && activity.from.id === 'mybot') 
      .subscribe(
      message => console.log(message)" 
      ); 
    } 

每當我開始通過每封郵件閱讀郵件的副本數量的增加由一個來回所以我網站將通過這個循環:

我 - 發送消息給機器人

BotReply - 味精1

我 - 發送一些消息給機器人

BotReply - MSG 2

BotReply - MSG 2

我 - 一些消息

BotReply - MSG 3

BotReply - MSG 3

Bot回覆 - msg 3

a ND等

我從機器人接收響應ID不增加任一重複的消息,以便說MSG 3具有ID = 00005,每個BotReply的 - MSG 3具有ID = 00005,但MSG 4。將ID = 00007

在我實際的機器人我用await context.PostAsync("Some mesage");,沒有別的

我能做些什麼來減少郵件回覆收到一張寄我的郵件?

的文件指出「直接行會幫忙,把你的客戶端每發送副本活動,因此常見的模式是,從過濾傳入的消息:」即使我過濾我的信息是從「mybot」

+0

請發佈其餘代碼。 (如何/何時打電話給sendReceiveActivity?) –

回答

1

如果沒有看到代碼的其餘部分,很難確定究竟發生了什麼。但是,看起來好像您每次發送消息都訂閱接收消息。請嘗試更改您的代碼,以便您只訂閱一次:

var directLine = new DirectLine.DirectLine({ 
     secret: "My_DirectLine_Secret", 
    }); 

directLine.activity$ 
      .filter(activity => activity.type === 'message' && activity.from.id === 'mybot') 
      .subscribe(
      message => console.log(message) 
      ); 

    function sendReceiveActivity(msg) { 
     document.getElementById("inputtext").value = ""; 
     conversation.innerHTML = conversation.innerHTML + "ME - " + msg + "<br/><br/>"; 

     directLine.postActivity({ 
      from: { id: 'myUserId', name: 'myUserName' }, // required (from.name is optional) 
      type: 'message', 
      text: msg 
     }).subscribe(
      id => console.log("Posted activity, assigned ID ", id), 
      error => console.log("Error posting activity", error) 
      ); 
    } 
+0

謝謝!訂閱接收到的功能外的消息解決了問題。 – Teragon