using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using System; using BestHTTP; using BestHTTP.SocketIO; namespace MartellGroupPhoto { /// /// CamFiSocket控制模块 /// 记得退订事件 /// public class CamFiSocketManager : MonoBehaviour { public static CamFiSocketManager Instance; private SocketManager socketManager; // ================================================== private void Awake() { Instance = this; } private void Start() { Init(); } private void OnApplicationQuit() { UnInit(); } // ================================================== private void Init() { socketManager = new SocketManager(new Uri(CamFiStorage.CamFiEventAddress)); socketManager.Socket.On("connect", ConnectedCallback); socketManager.Socket.On("disconnect", DisconnectedCallBack); socketManager.Socket.On("camera_add", CameraAddCallback); socketManager.Socket.On("camera_remove", CameraRemoveCallback); socketManager.Socket.On("file_added", FileAddedCallback); socketManager.Open(); return; } private void UnInit() { // if (socketManager != null) // { // socketManager.Close(); // } return; } // ================================================== public event UnityAction OnConnected; private void ConnectedCallback(Socket socket, Packet packet, params object[] args) { Debug.Log("[CamFiSocketManager]SokectIO已建立连接...[Done]"); if (OnConnected != null) { OnConnected(); } return; } private void DisconnectedCallBack(Socket socket, Packet packet, params object[] args) { Debug.Log("[CamFiSocketManager]SokectIO已停止连接...[Done]"); return; } private void CameraAddCallback(Socket socket, Packet packet, params object[] args) { Debug.Log("[CamFiSocketManager]CamFi已连接相机...[Done]"); return; } private void CameraRemoveCallback(Socket socket, Packet packet, params object[] args) { Debug.Log("[CamFiSocketManager]CamFi已停止连接相机...[Done]"); return; } public event UnityAction OnFileAdded; private void FileAddedCallback(Socket socket, Packet packet, params object[] args) { Debug.Log("[CamFiSocketManager]新照片路径已接收...[Done]"); if (OnFileAdded != null) { OnFileAdded(args[0].ToString()); } return; } } }