88 lines
3.1 KiB
C#
88 lines
3.1 KiB
C#
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");
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="msg"></param>
|
|
/// <returns></returns>
|
|
[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<byte>(sendBytes);
|
|
await clientWebSocket.SendAsync(bsend, WebSocketMessageType.Binary, true, _cancellation);
|
|
//await clientWebSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "1", _cancellation);
|
|
clientWebSocket.Dispose();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="msg"></param>
|
|
/// <param name="ServerpartCode"></param>
|
|
/// <param name="ShopCode"></param>
|
|
/// <param name="Data"></param>
|
|
/// <returns></returns>
|
|
[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");
|
|
}
|
|
}
|
|
}
|