botkit-starter-web icon indicating copy to clipboard operation
botkit-starter-web copied to clipboard

How to detect if client disconnects from chatbot?

Open hadizainudin opened this issue 5 years ago • 2 comments

Hello there. I have created a Botkit Chatbot, and embedded it on a page, passing current date and time, and cookies.

<div id="embedded_messenger">
  <header id="message_header" onclick="Botkit.toggle()">My Chatbot</header>
  <iframe id="botkit_client" src="//{{base_url}}/chat.html"></iframe>
</div>
<script src="//{{base_url}}/embed.js"></script>
<link rel="stylesheet" href="//{{base_url}}/css/embed.css" />
<script>
  Botkit.boot({ id: new Date().getTime(), name: Botkit.getCookie("myCookie") });
</script>

Then, it would create a JSON file.

/components/plugin_identity.js, line 34 to 36

controller.storage.users.save(user, function (err) {
  next();
});

/.data/db/users/1555557850438.json

{
  "id": "1555557850438",
  "attributes": {
    "timezone_offset": -480
  },
  "name": "user_0123",
}

What I wanted to do now is:

  1. I wanted to detect if client fully disconnects. How do I do that?
  2. If client is fully disconnects, I wanted to delete created file for that session. Maybe I call fs.unlink or controller.storage.channels.delete? Still thinking of how to achieve this.

Thank you for your time, and have a nice day.

hadizainudin avatar Apr 18 '19 03:04 hadizainudin

I would recommend replacing the built-in storage system with your own database-backed system. The built-in filesystem storage is only meant for "quick start" exploration.

Then, you could purge data out of your database based on a last modified timestamp or something like that.

benbrown avatar Apr 18 '19 15:04 benbrown

I will try to do what I can.

hadizainudin avatar Apr 19 '19 01:04 hadizainudin