getting response from server through callback
This commit is contained in:
@@ -31,16 +31,18 @@ namespace RH_Engine
|
|||||||
TcpClient client = new TcpClient("145.48.6.10", 6666);
|
TcpClient client = new TcpClient("145.48.6.10", 6666);
|
||||||
|
|
||||||
CreateConnection(client.GetStream());
|
CreateConnection(client.GetStream());
|
||||||
|
}
|
||||||
|
|
||||||
serverResponseReader = new ServerResponseReader(client.GetStream());
|
private static void initReader(NetworkStream stream)
|
||||||
|
{
|
||||||
|
serverResponseReader = new ServerResponseReader(stream);
|
||||||
serverResponseReader.callback = HandleResponse;
|
serverResponseReader.callback = HandleResponse;
|
||||||
|
serverResponseReader.StartRead();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void HandleResponse(string message)
|
public static void HandleResponse(string message)
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("GOT MESSAGE FROM CALLBACK!!!!! " + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -58,7 +60,7 @@ namespace RH_Engine
|
|||||||
|
|
||||||
stream.Write(res);
|
stream.Write(res);
|
||||||
|
|
||||||
//Console.WriteLine("sent message " + message);
|
Console.WriteLine("sent message " + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -96,25 +98,27 @@ namespace RH_Engine
|
|||||||
/// <param name="stream">the network stream to use</param>
|
/// <param name="stream">the network stream to use</param>
|
||||||
private static void CreateConnection(NetworkStream stream)
|
private static void CreateConnection(NetworkStream stream)
|
||||||
{
|
{
|
||||||
|
initReader(stream);
|
||||||
|
|
||||||
WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}");
|
WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}");
|
||||||
string id = JSONParser.GetSessionID(ReadPrefMessage(stream), PCs);
|
//string id = JSONParser.GetSessionID(ReadPrefMessage(stream), PCs);
|
||||||
|
|
||||||
string tunnelCreate = "{\"id\" : \"tunnel/create\", \"data\" : {\"session\" : \"" + id + "\"}}";
|
//string tunnelCreate = "{\"id\" : \"tunnel/create\", \"data\" : {\"session\" : \"" + id + "\"}}";
|
||||||
|
|
||||||
WriteTextMessage(stream, tunnelCreate);
|
//WriteTextMessage(stream, tunnelCreate);
|
||||||
|
|
||||||
string tunnelResponse = ReadPrefMessage(stream);
|
//string tunnelResponse = ReadPrefMessage(stream);
|
||||||
|
|
||||||
Console.WriteLine(tunnelResponse);
|
//Console.WriteLine(tunnelResponse);
|
||||||
|
|
||||||
string tunnelID = JSONParser.GetTunnelID(tunnelResponse);
|
//string tunnelID = JSONParser.GetTunnelID(tunnelResponse);
|
||||||
if (tunnelID == null)
|
//if (tunnelID == null)
|
||||||
{
|
//{
|
||||||
Console.WriteLine("could not find a valid tunnel id!");
|
// Console.WriteLine("could not find a valid tunnel id!");
|
||||||
return;
|
// return;
|
||||||
}
|
//}
|
||||||
|
|
||||||
sendCommands(stream, tunnelID);
|
//sendCommands(stream, tunnelID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -27,21 +27,28 @@ namespace RH_Engine
|
|||||||
if (this.callback == null)
|
if (this.callback == null)
|
||||||
{
|
{
|
||||||
throw new Exception("Callback not initialized!");
|
throw new Exception("Callback not initialized!");
|
||||||
} else
|
}
|
||||||
while (true)
|
else
|
||||||
{
|
{
|
||||||
|
Console.WriteLine("Starting loop for reading");
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
string res = ReadPrefMessage(Stream);
|
string res = ReadPrefMessage(Stream);
|
||||||
|
//Console.WriteLine("[SERVERRESPONSEREADER] got message from server: " + res);
|
||||||
this.callback(res);
|
this.callback(res);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
t.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ReadPrefMessage(NetworkStream stream)
|
public static string ReadPrefMessage(NetworkStream stream)
|
||||||
{
|
{
|
||||||
byte[] lengthBytes = new byte[4];
|
byte[] lengthBytes = new byte[4];
|
||||||
|
|
||||||
stream.Read(lengthBytes, 0, 4);
|
int streamread = stream.Read(lengthBytes, 0, 4);
|
||||||
Console.WriteLine("read message..");
|
Console.WriteLine("read message.. " + streamread);
|
||||||
|
|
||||||
int length = BitConverter.ToInt32(lengthBytes);
|
int length = BitConverter.ToInt32(lengthBytes);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user