2013-03-03 56 views
1

我需要爲基於JavaScript的crm應用程序啓動websocket服務器。我研究這個例子:Create "Hello World" WebSocket example 但我無法建立連接。計劃拋出入門C#websocket應用程序

異常
var key = headerResponse.Replace("ey:", "`") 
           .Split('`')[1]      // dGhlIHNhbXBsZSBub25jZQ== \r\n ....... 
           .Replace("\r", "").Split('\n')[0] // dGhlIHNhbXBsZSBub25jZQ== 
           .Trim(); 

框架從客戶端發送如下所示:

GET/HTTP/1.1 主機:本地主機:9801 連接:保活 的Cache-Control:MAX-用戶代理:Mozilla/5.0(Windows NT 6.2; WOW64)AppleWebKit/537.22 (KHTML,像Gecko)Chrome/25.0.1364.97 Safari/537.22 0123接受編碼:gzip,deflate,sdch Accept-Language:pl-PL,pl; q = 0.8,en-US; q = 0.6,en; q = 0.Accept-Charset:ISO-8859-2,utf -8; q = 0.7,*; q = 0.3

框架的關鍵部分在任何瀏覽器上都丟失了。如何解決這個問題?

+1

**的邊界之外什麼異常說**? – SLaks 2013-03-03 16:53:09

+0

請在標題中添加換行符。 – SLaks 2013-03-03 16:53:30

+0

錯誤消息:「索引超出了數組的範圍」。框架的「關鍵」部分不存在,所以關鍵字不能從字符串中解析。這個鍵是必需的嗎? – 2013-03-03 19:03:41

回答

0

你這樣做的方式在例外方面看起來有點不太合適。 嘗試通過驗證您收到的值來防止此問題。 我不能說您的問題恰恰是,但這應該解決您的

指數是數組

string key = ""; 
    if (string.IsNullOrEmpty(headerResponse)) 
    { 
     //No header response... handle it ;) 
    } 
    var replacedString = headerResponse.Replace("ey:", "`"); 
    string[] splitted = replacedString.Split('`'); 
    if (splitted.Length > 1) 
    { 
     string replaced2 = splitted[1].Replace("\r", ""); 
     string[] splitted2 = replaced2.Split('\n'); 
     if (splitted2.Length > 0) 
     { 
      key = splitted2[0].Trim(); 
     } 
     else 
     { 
      // '\n' not found 
     } 
    } 
    else 
    { 
     // '`' not found 
    } 

    if (string.IsNullOrEmpty(key)) 
    { 
     //do error correction 
    } 
    else 
    { 
     //everything is fine 
    }