using System; using System.Collections.Generic; using System.Linq; using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Web; using System.Web.Http; using System.Web.Http.Description; using Newtonsoft.Json.Linq; using HZQR.Common; namespace TestDemo.Controllers { public class HomeController : ApiController { private readonly ClientWebSocket clientWebSocket = new ClientWebSocket(); private readonly CancellationToken _cancellation = new CancellationToken(); //public WebSocket4Net.WebSocket webSocket = new WebSocket4Net.WebSocket("ws://10.103.1.8:7119"); /// /// /// /// /// [AcceptVerbs("GET", "POST")] [Route("SendMsg")] //[ResponseType(typeof(string))] public async Task SendMsg(string msg) { await clientWebSocket.ConnectAsync(new Uri("ws://10.103.1.8:7119"), _cancellation); var sendBytes = Encoding.UTF8.GetBytes(msg);//发送的数据 var bsend = new ArraySegment(sendBytes); await clientWebSocket.SendAsync(bsend, WebSocketMessageType.Binary, true, _cancellation); //await clientWebSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "1", _cancellation); clientWebSocket.Dispose(); } /// /// /// /// /// /// /// /// [AcceptVerbs("GET", "POST")] [Route("sendSocketmsg")] [ResponseType(typeof(string))] public string sendSocketmsg(string ServerpartCode, string ShopCode, string Data) { //if (webSocket.State != WebSocket4Net.WebSocketState.Open && // webSocket.State != WebSocket4Net.WebSocketState.Connecting) //{ WebSocket4Net.WebSocket webSocket = new WebSocket4Net.WebSocket("ws://pos.eshangtech.com:7199"); webSocket.Error += WebSocket_Error; webSocket.MessageReceived += WebSocket_MessageReceived; webSocket.Open(); //} Thread.Sleep(100); JObject keyValuePairs = new JObject(); keyValuePairs["ServerpartCode"] = ServerpartCode; keyValuePairs["ShopCode"] = ShopCode; keyValuePairs["Data"] = Data; byte[] sendmsg = Encoding.UTF8.GetBytes(keyValuePairs.ToString()); if (webSocket.State == WebSocket4Net.WebSocketState.Open) { webSocket.Send(sendmsg, 0, sendmsg.Length); } return "100"; } private void WebSocket_MessageReceived(object sender, WebSocket4Net.MessageReceivedEventArgs e) { LogUtil.WriteLog(e.Message); } private void WebSocket_Error(object sender, SuperSocket.ClientEngine.ErrorEventArgs e) { LogUtil.WriteLog(null, e.Exception.Message, "Error"); } } }