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");
}
}
}