/// <summary> /// подключиться к Long Poll серверу /// </summary> /// <param name="serverData"></param> /// <returns>При каждом ответе сервер будет возвращать новый ts</returns> public string ConnectToLongPoolServer(LongPollServerInfo serverData) { WebClient wc = new WebClient(); string connection = string.Format("http://{0}?act=a_check&key={1}&ts={2}&wait=25", serverData.Server, serverData.Key, serverData.Ts); byte[] buff = wc.DownloadData(connection); string ret_string = Encoding.UTF8.GetString(buff); return ret_string; }
/// <summary> /// Возвращает данные, необходимые для подключения к Long Poll серверу /// <remarks>Long Poll подключение позволит Вам моментально узнавать о приходе новых сообщений и других событий. </remarks> /// </summary> /// <returns></returns> public LongPollServerInfo GetLongPollServerConnetInfo() { if (IsConnected && (Settings & ((int)VKSettings.ExMessages)) != 0) { XmlDocument doc = ExecuteMethodByToken("messages.getLongPollServer", null); if (!HasError(doc)) { LongPollServerInfo server = new LongPollServerInfo(); server.Key = doc.SelectSingleNode("response/key/text()").Value; server.Server = doc.SelectSingleNode("response/server/text()").Value; long ts; if (long.TryParse(doc.SelectSingleNode("response/ts/text()").Value, out ts)) server.Ts = ts; return server; } return null; } return null; }