class Slack::RealTime::Socket
def close
def close # When you call `driver.emit(:close)`, it will typically end up calling `client.close` # which will call `@socket.close` and end up back here. In order to break this infinite # recursion, we check and set `@driver = nil` before invoking `client.close`. return unless (driver = @driver) @driver = nil driver.emit(:close) end