/// <summary> /// 连接建立事件 /// </summary> internal void HandleOpen() { try { var path = _webSocketConnection.ConnectionInfo.Path; var match = _options.UrlMapping.Match(path); var streamName = match.Groups["streamName"].Value; var controllerName = match.Groups["controller"].Value; var query = ""; var idx = path.IndexOf('?'); if (idx != -1) { query = path.Substring(idx); } if (!_options._controllers.TryGetValue(controllerName.ToLower(), out var controllerType)) { _webSocketConnection.Close(); } _controller = _options._serverOptions.ServerLifetime.Resolve(controllerType) as WebSocketController; _controller.Query = HttpUtility.ParseQueryString(query); _controller.StreamName = streamName; _controller.Session = this; _controller.OnConnect().ContinueWith(_ => { _webSocketConnection.Close(); }, TaskContinuationOptions.OnlyOnFaulted);; } catch { _webSocketConnection.Close(); } }
void OnEnable() { WebSocketController mController = GetComponent <RoomTemplate>().webSocketController; if (mController == null) { enabled = false; Debug.LogWarning("尚未指定wsController"); return; } if (string.IsNullOrEmpty(GetComponent <RoomTemplate>().roomName) || string.IsNullOrEmpty(GetComponent <RoomTemplate>().groupId)) { Debug.LogError("roomName或groupId其中一項為空"); Debug.LogError("roomName : " + GetComponent <RoomTemplate>().roomName); Debug.LogError("groupId:" + GetComponent <RoomTemplate>().groupId); enabled = false; return; } Debug.Log("開啟自動訂閱桌子 : " + GetComponent <RoomTemplate>().roomName); mController.openSocketEvent += HandleResubscribe; if (mController.webSocket != null && mController.webSocket.IsOpen) { HandleResubscribe(); } }
internal ControllerInstance(String path, WebSocketController controller) { Controller = controller; Path = path; Paths = path.Split(new Char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); Regex = new Regex(path); }
internal void HandleClose() { if (_controller is IDisposable disp) { disp.Dispose(); } _controller = null; }
protected override void Start() { timerController = new TimerController(); timerController.Initialize(); webSocketController = gameObject.AddComponent<WebSocketController>(); var gameSparksUnity = GetComponent<GameSparksUnity>(); GameSparksSettings.SetInstance(gameSparksUnity.settings); base.Start(); }
public void Init() { Instance = this; WebSocketController websocket = new WebSocketController(); websocket.Initialize(); MapsManager m = new MapsManager(); playerController = new PlayerController(); SetMap(0); App.OnUpdate += Update; App.OnClick += App_OnClick; }
protected override void Start () { timerController = new TimerController(); timerController.Initialize(); // Register crypto implementation GSInitializeCrypto(); // Register socket implementation GSInitializeGSSocket(); webSocketController = gameObject.AddComponent<WebSocketController>(); var gameSparksUnity = GetComponent<GameSparksUnity>(); GameSparksSettings.SetInstance(gameSparksUnity.settings); base.Start(); }
public void ManagerDashBoardCounts(string connectionString, Int32 accountId) { DataSet ds = new DataSet(); try { Press3.DataAccessLayer.GetStudioXml managerDashBoardCounts = new DataAccessLayer.GetStudioXml(connectionString); ds = managerDashBoardCounts.ManagerDashBoardCounts(accountId); if (ds != null) { helper.ParseDataSet(ds); dynamic s = helper.GetResponse(); JObject countsObject = ((s as JObject).SelectToken("Table") as JArray).First as JObject; countsObject.Add("Channel_Name", "manager_" + accountId.ToString()); WebSocketController wsObj = new WebSocketController(connectionString); wsObj.InsertWsNofificationQueue(countsObject.ToString()); countsObject.Add(new JProperty("CallEvent", httpParameters.Event)); Logger.Debug("Sending data to manager dashBoard with account ID:" + accountId + ",With Data:" + countsObject.ToString()); } }catch (Exception e) { Logger.Error("Exception while inserting ManagerCounts into WebSocket." + e.ToString()); } }
public void SetController(WebSocketController controller) { this.controller = controller; controllerName = this.controller.GSName; controller.AddWebSocket(this); }
internal DataBuffer(WebSocketController _controller, WebSocketMessageType type, Stream _stream) { Type = type; controller = _controller; stream = _stream; }
public void SetController(WebSocketController controller) { this.controller = controller; this.controller.AddWebSocket(this); GSSocketInitialize(SocketId, controller.name); }
protected void Application_Start() { WebSocketController.Connect();//开启websocket连接 GlobalConfiguration.Configure(WebApiConfig.Register); log4net.Config.XmlConfigurator.Configure(); }
public void AddBindings(Method[] methods, string rootUri, ushort port) { methods.ForEach(method => Handle.CUSTOM ( port: port, methodSpaceUri: $"{method} {rootUri}{{?}}", handler: (Request scRequest, string uri) => { var headers = new Headers(scRequest.HeadersDictionary); var client = GetClient(scRequest); if (!client.TryAuthenticate(ref uri, headers, out var error)) { return(ToResponse(error)); } var context = new ScContext(client, scRequest); using (var request = context.CreateRequest(uri, method, scRequest.BodyBytes, headers)) { switch (request.Evaluate().Serialize()) { case WebSocketUpgradeSuccessful _: return(HandlerStatus.Handled); case var result: Admin.Console.Log(request, result); return(ToResponse(result)); } } } )); Handle.OPTIONS ( port: port, uriTemplate: $"{rootUri}{{?}}", handler: (Request scRequest, string query) => { var context = new ScContext(GetClient(scRequest), scRequest); var headers = new Headers(scRequest.HeadersDictionary); return(ToResponse(context.GetOptions(query, headers))); } ); Handle.WebSocket ( port: port, groupName: WsGroupName, handler: async(textInput, webSocket) => { try { await WebSocketController.HandleTextInput(ScWebSocket.GetRESTarWsId(webSocket), textInput); } catch (Exception e) { webSocket.Send(e.Message); webSocket.Disconnect(); } } ); Handle.WebSocket ( port: port, groupName: WsGroupName, handler: (binaryInput, webSocket) => { try { WebSocketController.HandleBinaryInput(ScWebSocket.GetRESTarWsId(webSocket), binaryInput); } catch (Exception e) { webSocket.Send(e.Message); webSocket.Disconnect(); } } ); Handle.WebSocketDisconnect ( port: port, groupName: WsGroupName, handler: webSocket => { try { WebSocketController.HandleDisconnect(ScWebSocket.GetRESTarWsId(webSocket)); } catch { } } ); }