     var didLoad = false
     var didAppear = false
     var didLoadTimeout = 2500
+    // we are also a socket server which sends didview/didload events to the listening client(s)
+    var sockets = [String: BRWebSocket]()
+    // this is the data that occasionally gets sent to the above connected sockets
+    var webViewInfo: [String: Any] {
+        return [
+            "visible": didAppear,
+            "loaded": didLoad,
+        ]
+    }
     
     init(bundleName name: String, mountPoint mp: String = "/") {
         wkProcessPool = WKProcessPool()



@available(iOS 8.0, *)
@objc open class BRWebViewController : UIViewController, WKNavigationDelegate {
    var wkProcessPool: WKProcessPool
    var webView: WKWebView?
    var bundleName: String

    // signal to the presenter that the webview content successfully loaded
    fileprivate func webviewDidLoad() {
        didLoad = true
        sendToAllSockets(data: webViewInfo)
    }
    
    open func startServer() {
