Tset_Tsyung
New member
- Joined
- May 8, 2016
- Messages
- 2
- Programming Experience
- Beginner
Hi all,
First post here - XD
So I'm working on a project in Unity (an interactive, live animated twitchbot). I'm using TcpClient and StreamReader to connect to the twitch chat and read the messages.
Of course streamreader.readline() causes the program to completely hang whilst waiting for message. As this is an animated project this is no good. Therefore I've start looking into threading
Problem is that whilst there are message on the stream it runs fine... but as soon as the stream is empty the thread becomes completely unresponsive. Even when a new message comes through it does nothing with it. At least when it wasn't threaded it would eventually continue when a message did come through.
Here's my code
Just to restate, once the initial list of message from the twitch servers is finished the thread just ceases up, even when new messages come through it doesn't respond to them. I've tried it with and without a receivedTimeout paramet. What am I missing? I should state that I only started looking into threading yesterday, but with the little knowledge I have I don't know where to begin...
Any advice or help is greatly appreciated.
Mike
P.S. just as an FYI it stops producing the "Checking for message" debug entry as well...
First post here - XD
So I'm working on a project in Unity (an interactive, live animated twitchbot). I'm using TcpClient and StreamReader to connect to the twitch chat and read the messages.
Of course streamreader.readline() causes the program to completely hang whilst waiting for message. As this is an animated project this is no good. Therefore I've start looking into threading
Problem is that whilst there are message on the stream it runs fine... but as soon as the stream is empty the thread becomes completely unresponsive. Even when a new message comes through it does nothing with it. At least when it wasn't threaded it would eventually continue when a message did come through.
Here's my code
C#:
private void ClientReadStream()
{
while (true) {
Debug.Log ("Checking for message");
string message = inputStream.ReadLine ();
Debug.Log ("We've recieved a message of " + message);
MessageInfo latestMessage = new MessageInfo ();
latestMessage.message = message;
//latestMessage.timeReceived = Time.time;
messageList.Add (latestMessage);
}
}
Just to restate, once the initial list of message from the twitch servers is finished the thread just ceases up, even when new messages come through it doesn't respond to them. I've tried it with and without a receivedTimeout paramet. What am I missing? I should state that I only started looking into threading yesterday, but with the little knowledge I have I don't know where to begin...
Any advice or help is greatly appreciated.
Mike
P.S. just as an FYI it stops producing the "Checking for message" debug entry as well...