public virtual void onOpen()
 {
     outerInstance.openWsFuture.fulfill();
     /* send bind_session */
     if (outerInstance.bindRequest != null)
     {
         // bind request has precedence over control requests
         outerInstance.sendBindRequest(outerInstance.bindRequest.request, outerInstance.bindRequest.reqListener, outerInstance.bindRequest.bindFuture);
     }
     /* send control requests */
     foreach (PendingRequest controlRequest in outerInstance.controlRequestQueue)
     {
         outerInstance.sendControlRequest(controlRequest.request, controlRequest.reqListener, controlRequest.tutor);
     }
     /* release memory */
     outerInstance.bindRequest = null;
     outerInstance.controlRequestQueue.Clear();
 }