Defines the callback delegate which you can use to get a notification when a connection is ready to send data.
The callback will be only be called if you specifically indicate that you want this notification, by calling NetworkTransport.NotifyWhenConnectionReadyForSend.
This callback will be called from the IO thread. If you execute a long operation from this callback it will affect your IO operation performance, therefore you should return from these operations as soon as possible.
using System; using UnityEngine; using UnityEngine.Networking;
public class Test : MonoBehaviour { static bool isSend = true; //...
public static void SendCallback(int hostId, int connectionId) { isSend = true; //we can send again }
void Start() { GlobalConfig config = new GlobalConfig(); config.ConnectionReadyForSend = SendCallback; //set up callback for send notification
NetworkTransport.Init(config);
//.... }
void Update() { int testHostId = 1; int testConnectionId = 1; int testChannelId = 1; var testArray = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }; byte error; while (isSend) { isSend = NetworkTransport.Send(testHostId, testConnectionId, testChannelId, testArray, testArray.Length, out error); if (isSend == false) { NetworkTransport.NotifyWhenConnectionReadyForSend(testHostId, testConnectionId, 2, out error); //ask lib to call SendCallback() when connection will be ready again and we will be able to send as minimum 2 messages break; } } } }