class Sessions::Event::ChatStatusCustomer < Sessions::Event::ChatBase

  def run

    chat_id = 1
    chat = Chat.find_by(id: chat_id)
    if !chat
      return {
        event: 'chat_status_customer',
        data: {
          state: 'no_such_chat',
        },
      }
    end

    # check if it's a chat sessin reconnect
    session_id = nil
    if @data['data']['session_id']
      session_id = @data['data']['session_id']

      # update recipients of existing sessions
      chat_session = Chat::Session.find_by(session_id: session_id)
      chat_session.add_recipient(@client_id, true)
    end
    {
      event: 'chat_status_customer',
      data: chat.customer_state(session_id),
    }
  end
end

class Sessions::Event::ChatStatusCustomer < Sessions::Event::ChatBase

  def run

    chat_id = 1
    chat = Chat.find_by(id: chat_id)
    if !chat
      return {
        event: 'chat_status_customer',
        data: {
          state: 'no_such_chat',
        },
      }
    end

    # check if it's a chat sessin reconnect
    session_id = nil
    if @data['data']['session_id']
      session_id = @data['data']['session_id']
    end
    {
      event: 'chat_status_customer',
      data: chat.customer_state(session_id),
    }
  end
end

--- 
+++ 
@@ -17,6 +17,10 @@
     session_id = nil
     if @data['data']['session_id']
       session_id = @data['data']['session_id']
+
+      # update recipients of existing sessions
+      chat_session = Chat::Session.find_by(session_id: session_id)
+      chat_session.add_recipient(@client_id, true)
     end
     {
       event: 'chat_status_customer',
Update ws client ids in reconnect.
