public async Task SendConnectPosition(string id, Vector3 tmp) { using (var call = client.ConnectPosition()) { int chunks = 0; Console.WriteLine("Starting background task to receive messages"); var readTask = Task.Run(async() => { while (await call.ResponseStream.MoveNext()) { Console.WriteLine("SendConnectPosition: " + call.ResponseStream.Current.Users); chunks++; } }); Console.WriteLine("Starting to send messages"); for (var i = 0; i < chunks; i++) { Console.WriteLine("Req: " + i); await call.RequestStream.WriteAsync(new ConnectPositionRequest { Id = id + i, X = tmp.x, Y = tmp.y, Z = tmp.z }); } Console.WriteLine("Disconnecting"); await call.RequestStream.CompleteAsync(); await readTask; } }
// BiDiretional static async Task SendConnectPosition(Multiplay.MultiplayClient client) { using (var call = client.ConnectPosition()) { Console.WriteLine("Starting background task to receive messages"); var readTask = Task.Run(async() => { while (await call.ResponseStream.MoveNext()) { Console.WriteLine("Greeting: " + call.ResponseStream.Current.Users); // "Greeting: Hello World" is written multiple times } }); Console.WriteLine("Starting to send messages"); Console.WriteLine("Type a message to echo then press enter."); for (var i = 0; i < 50; i++) { Console.WriteLine("Req: " + i); // Thread.Sleep(599); await call.RequestStream.WriteAsync(new ConnectPositionRequest { Id = "id" + i, X = 1f, Y = 2f, Z = 3f }); } Console.WriteLine("Disconnecting"); await call.RequestStream.CompleteAsync(); await readTask; } }
void Start() { // コンポーネントの取得 this.userObjects = new Hashtable(); controller = GetComponent <CharacterController>(); animCon = GetComponent <Animator>(); channel = new Channel("127.0.0.1:57601", ChannelCredentials.Insecure); client = new Multiplay.MultiplayClient(channel); call = client.ConnectPosition(); id = PlayerPrefs.GetString("userId"); }
//private AsyncStreamingCall<SetPositionRequest, SetPositionResponse> call2; void Start() { channel = new Channel(PlayerPrefs.GetString("serverPort"), ChannelCredentials.Insecure); client = new Multiplay.MultiplayClient(channel); call = client.ConnectPosition(); }