public override async Task ReceiveAsync(WebSocket socket, WebSocketReceiveResult result, byte[] buffer) { var socketid = WebSocketObjectHolder.GetId(socket); var message = $"{socketid} said: {Encoding.UTF8.GetString(buffer, 0, result.Count)}"; await SendMessageToAllAsync(message, AppConst.NON_BOM_UTF8_ENCORDING); }
public override async Task ReceiveAsync(WebSocket socket, WebSocketReceiveResult result, byte[] buffer) { var socketid = WebSocketObjectHolder.GetId(socket); var message = AppConst.NON_BOM_UTF8_ENCORDING.GetString(buffer, 0, result.Count); await Task.CompletedTask; // Todo: コマンド受信処理 }
public override async Task OnDisconnected(WebSocket socket) { var socketId = WebSocketObjectHolder.GetId(socket); await base.OnDisconnected(socket); await SendMessageToAllAsync($"{socketId} disconnected", AppConst.NON_BOM_UTF8_ENCORDING); }
public override async Task OnConnected(WebSocket socket) { await base.OnConnected(socket); var socketid = WebSocketObjectHolder.GetId(socket); Console.WriteLine($"socket created: {socketid}"); await Task.CompletedTask; //await SendMessageToAllAsync($"{socketid} is now connected", AppConst.NON_BOM_UTF8_ENCORDING); }
public override async Task OnDisconnected(WebSocket client) { var socketId = WebSocketObjectHolder.GetId(client); await base.OnDisconnected(client); Console.WriteLine($"socket closed: {socketId}"); await Task.CompletedTask; //await SendMessageToAllAsync($"{socketId} disconnected", AppConst.NON_BOM_UTF8_ENCORDING); }
public override async Task ReceiveAsync(WebSocket socket, WebSocketReceiveResult result, byte[] buffer) { var socketid = WebSocketObjectHolder.GetId(socket); var message = AppConst.NON_BOM_UTF8_ENCORDING.GetString(buffer, 0, result.Count); if (message.Length > 0) { try { var request = JsonConvert.DeserializeObject <WebSocketRequest>(message); Console.WriteLine(request.Cmd); Console.WriteLine(request.Args); switch (request.Cmd) { case (WebSocketCommands.SENSOR_RESET): sensorCount = 0; break; case (WebSocketCommands.LOG_START): LogStart(); break; case (WebSocketCommands.LOG_STOP): LogStopAndSave(request.Args.ToString()); break; default: break; } } catch (Exception e) { Console.WriteLine(e.ToString()); //await socket.SendAsync(AppConst.NON_BOM_UTF8_ENCORDING.GetBytes(e.ToString()), WebSocketMessageType.Text, true, CancellationToken.None); } } await Task.CompletedTask; // Todo: コマンド受信処理 }
public override async Task OnDisconnected(WebSocket socket) { var socketId = WebSocketObjectHolder.GetId(socket); await base.OnDisconnected(socket); Console.WriteLine($"socket closed: {socketId}"); if (WebSocketObjectHolder.Count <= 0) { StopLoggingTimer(); StopSendTimer(); Thread.Sleep(100); this.forceSensor.DisConnect(); this.cfdLogger.DisConnect(); } await Task.CompletedTask; }
// WebSocket 関連イベント public override async Task OnConnected(WebSocket socket) { await base.OnConnected(socket); if (!cfdLogger.IsLogging) { cfdLogger.Connect(settings.CfdIP, settings.CfdPort); } if (!forceSensor.IsConnecting) { forceSensor.Connect(); } StartSendTimer(); var socketid = WebSocketObjectHolder.GetId(socket); Console.WriteLine($"socket created: {socketid}"); await Task.CompletedTask; }
public override async Task OnConnected(WebSocket client) { await base.OnConnected(client); var socketid = WebSocketObjectHolder.GetId(client); Console.WriteLine($"socket created: {socketid}"); if (this.watchLoop == null) { this.watchLoop = Task.Run(async() => { Connect(); isStop = false; while (!isStop) { this.socket.Send(this.sendMessage); int receiveLength = socket.Receive(this.resBuffer); flexData resData = null; using (var ms = new System.IO.MemoryStream()) { try { var length = ParseHeader(this.resBuffer, 0); System.Diagnostics.Debug.WriteLine(length); // ms.Write(res, 8, receiveLength - 8); ms.Write(this.resBuffer, 8, length); ms.Position = 0; //Console.WriteLine(Encoding.UTF8.GetString(ms.GetBuffer())); resData = (flexData)serializer.Deserialize(ms); if (resData.notifications != null) { resData.notifications.ToList().ForEach(n => { Console.Error.WriteLine($"{n.code}: {n.message}"); }); Thread.Sleep(1000); continue; } var updateData = resData.dataExchange.dataUpdate[0].data[0].r; await infoSemaphore.WaitAsync(); try { this.robotInfo.Tcp.X = (float)updateData[0]; this.robotInfo.Tcp.Y = (float)updateData[1]; this.robotInfo.Tcp.Z = (float)updateData[2]; this.robotInfo.Tcp.Role = (float)updateData[3]; this.robotInfo.Tcp.Pitch = (float)updateData[4]; this.robotInfo.Tcp.Yaw = (float)updateData[5]; } finally { infoSemaphore.Release(); } Thread.Sleep(5); } catch (System.Exception err) { Console.WriteLine(err.ToString()); Thread.Sleep(5000); throw; } finally { ms.Dispose(); } } } }); } Thread.Sleep(100); if (sendLoop == null) { this.sendLoop = Task.Run(async() => { isStop = false; string str = null; while (!isStop) { await infoSemaphore.WaitAsync(); try { str = JsonConvert.SerializeObject(this.robotInfo); } finally { infoSemaphore.Release(); } //Console.WriteLine(str); await SendMessageToAllAsync(str, AppConst.NON_BOM_UTF8_ENCORDING); Thread.Sleep(10); } }); } await Task.CompletedTask; }