コード例 #1
0
    /*
   Простой post запрос
   */
    public async Task<string> SendMessageToServer(Message message)
    {
      WebRequest req = WebRequest.Create("http://localhost:45534/message/post");
      req.Method = "POST";
      req.Timeout = 100000;
      req.ContentType = "application/json";
      byte[] sentData = Encoding.GetEncoding(1251).GetBytes(JsonConvert.SerializeObject(message));
      try
      {
        Stream sendStream = await req.GetRequestStreamAsync();
        await sendStream.WriteAsync(sentData, 0, sentData.Length);
        sendStream.Close();
        WebResponse res =await req.GetResponseAsync();
        return "ok";
      }
      catch (Exception)
      {
        return "failed";
      }

    }
コード例 #2
0
ファイル: RobotConnector.cs プロジェクト: qreal/robostore.net
    public async Task SendEcho(string robotNumber)
    {
      // создали эхо - сообщение
      Message message = new Message()
      {
        Commands = new List<string>() { "<ECHO>" },
        From = "0",
        To = robotNumber,
        Text = null
      };

      // оно дошло?
      bool result = true;

      /*
      нужно сказать серверу, что робот онлайн только 1 раз, поэтому нужен флаг
      */

      bool serverKnows = false;

      while (result)
      {
        Thread.Sleep(1000);
        result = await SendMessageToRobotTask(JsonConvert.SerializeObject(message));
        if (result)
        {
          Console.WriteLine("Robot is online now");
          if (!serverKnows)
          {
            Message notificationOn = new Message()
            {
              Commands = null,
              From = robotNumber,
              Text = "I am online!",
              To = "0"
            };
            await _serverConnector.SendMessageToServer(notificationOn);
            serverKnows = true;
          }
        }
      }

      Console.WriteLine("Robot is offline now");
      Message notificationOff = new Message()
      {
        Commands = null,
        From = robotNumber,
        Text = "I am offline!",
        To = "0"
      };
      var robot = data.Robots.First(x => x.Number == robotNumber);
      robot.isOnline = false;
      await data.UpdateAsync(robot);
      await _serverConnector.SendMessageToServer(notificationOff);
    }