void OnHello(Srpc.Message response) { var srpc = new Srpc.Message(); srpc.Set(Srpc.Key.Method, "System_GetHandle"); _client.Send(srpc, OnGetHandle); }
void OnGetHandle(Srpc.Message response) { _sContext = response.GetString("hResult"); _bHasContext = true; SendContextOpen(); // Before Show, so that the browser window is known and can manage the Show if (_nNativeHWND != 0) { SendContextNativeWindow(_sNativeVersion, _nNativeHWND); } if (_bShow) { SendContextShow(); } else { SendContextHide(); } //SendContextPosition(200, 800); //SendContextSize(600, 400); }
void SendContextHide() { var srpc = new Srpc.Message(); srpc.Set(Srpc.Key.Method, "Navigation_ContextHide"); srpc.Set("hContext", _sContext); Send(srpc); }
void SendContextNavigate(string sUrl) { var srpc = new Srpc.Message(); srpc.Set(Srpc.Key.Method, "Navigation_ContextNavigate"); srpc.Set("hContext", _sContext); srpc.Set("sUrl", sUrl); Send(srpc); }
void Send(Srpc.Message srpc) { lock (this) { if (_client != null) { _client.Send(srpc); } } }
void SendContextSize(int nWidth, int nHeight) { var srpc = new Srpc.Message(); srpc.Set(Srpc.Key.Method, "Navigation_ContextSize"); srpc.Set("hContext", _sContext); srpc.Set("nWidth", nWidth); srpc.Set("nHeight", nHeight); Send(srpc); }
void SendContextPosition(int nLeft, int nBottom) { var srpc = new Srpc.Message(); srpc.Set(Srpc.Key.Method, "Navigation_ContextPosition"); srpc.Set("hContext", _sContext); srpc.Set("nLeft", nLeft); srpc.Set("nBottom", nBottom); Send(srpc); }
internal void Send(Srpc.Message msg, SrpcCompletion fComplete) { if (fComplete != null) { string sSrpcId = "_" + _nSrpcId++; msg.Set("SrpcId", sSrpcId); _completions.Add(sSrpcId, fComplete); } Send(msg.ToString() + "\n"); }
private void HandleResponse(Srpc.Message response, string sSrpcId) { if (_completions.ContainsKey(sSrpcId)) { var fCompletion = _completions[sSrpcId]; if (fCompletion != null) { fCompletion(response); } _completions.Remove(sSrpcId); } }
void OnReceived(IAsyncResult iar) { //Socket remoteSocket = (Socket)iar.AsyncState; // disposed lock (this) { if (_socket == null) { OnDisconnected(); } else { _bReceiving = false; int nBytesRead = 0; try { nBytesRead = _socket.EndReceive(iar); } catch { } if (nBytesRead == 0) { OnDisconnected(); } else { string sData = Encoding.UTF8.GetString(_bytes, 0, nBytesRead); Log("IN " + sData); _sBuffer += sData; Srpc.Message srpc = null; do { srpc = ProcessData(ref _sBuffer); if (srpc != null) { string sSrpcId = srpc.GetString("SrpcId"); if (!String.IsNullOrEmpty(sSrpcId)) { HandleResponse(srpc, sSrpcId); } else { HandleRequest(srpc); } } } while (srpc != null); Receive(); } } } }
void OnConnected() { _bConnected = true; _nReconnectInterval = _nMinReconnectInterval; lock (this) { if (_client != null) { var srpc = new Srpc.Message(); srpc.Set(Srpc.Key.Method, "Navigation_NavigatorHello"); _client.Send(srpc, OnHello); } } }
void SendContextNativeWindow(string sVersion, int nHWND) { var sig = new Srpc.Message(); sig.Set("sType", "InternetExplorer"); sig.Set("sVersion", sVersion); sig.Set("nWin32HWND", nHWND); var srpc = new Srpc.Message(); srpc.Set(Srpc.Key.Method, "Navigation_ContextNativeWindow"); srpc.Set("hContext", _sContext); srpc.Set("kvSignature", sig.ToString()); Send(srpc); }
private Srpc.Message ProcessData(ref string sData) { Srpc.Message msg = null; string sLfClean = sData.Replace("\r\n", "\n"); int nEnd = sLfClean.IndexOf("\n\n"); if (nEnd >= 0) { string sMessage = sLfClean.Substring(0, nEnd + 1); sData = sLfClean.Substring(nEnd + 2); msg = new Srpc.Message(sMessage); } return(msg); }
internal void Send(Srpc.Message msg) { Send(msg, null); }
private void HandleRequest(Srpc.Message request) { }
public SrpcException(Srpc.Message msg) { _srpcMessage = msg; }