using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.Collections.Concurrent; using System.Linq; using System.Diagnostics; using UnityEngine.Networking; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; public class MyNetMQClient : MonoBehaviour { public static MyNetMQClient instance; [DisplayOnly] public string PubIP= "127.0.0.1:8082"; [DisplayOnly] public string SubIP = "127.0.0.1:8081"; /// <summary> /// 接口IP (配置文件) /// </summary> public static string CallIP = "192.168.1.161:8080"; public static string SyncServerIP = "192.168.1.161:8888"; public static string remoteServerIP = "192.168.1.161:8890"; [HideInInspector] public NetMqListener _netMqListener; [HideInInspector] public NetMqPublisher _netMqPublisher; private void Awake() { instance = this; } /// <summary> /// 初始化Netmq /// </summary> /// <param name="reciveInMono">接收函数</param> public void Init(string ServerSubIP,string ServerPubIP, NetMqListener.ReciveMessageInThread reciveInthread, NetMqListener.ReceiceMessageInMono reciveInMono,string typename) { SubIP = ServerSubIP; PubIP = ServerPubIP; //开启接收模块 _netMqListener = new NetMqListener(ServerSubIP, reciveInthread, reciveInMono); _netMqListener.typeName = typename; //开启发送模块 _netMqPublisher = new NetMqPublisher(ServerPubIP); _netMqPublisher.typeName = typename; } /// <summary> /// 发送消息 /// </summary> /// <param name="msg"></param> public void Send(string msg) { _netMqPublisher.AddMessageToSendQue(GlobalFlag.roomID, 0, Encoding.UTF8.GetBytes(msg)); } private void Update() { if (_netMqListener != null) { _netMqListener.UpdateByte(); } } public void Destroy() { _netMqListener._listenerCancelled = true; _netMqPublisher._listenerCancelled = true; UnityEngine.Debug.Log("销毁xxxxx"); Destroy(this); } } /// <summary> /// 消息体 /// </summary> [Serializable] public class st_Motions { /// <summary> /// 域 /// </summary> public string area; /// <summary> /// 消息标识 /// </summary> public int m_iOperaType; /// <summary> /// 消息内容(byte[256]) /// </summary> public byte[] m_sOperaData; } /// <summary> /// 演习状态 /// </summary> public enum ProgramState { 结束, 进行中 } public class DisplayOnly : PropertyAttribute { }