public void Connect() { if (client.IsAlive) { Debug.LogWarning("Stomp client already connected"); return; } client.Connect(); Debug.Log("Websocket connected"); var msg = new StompFrame(ClientCommand.CONNECT); msg.AddHead("accept-version", acceptVersion); msg.AddHead("heart-beat", heartBeat); client.Send(msg.ToString()); client.OnMessage += (sender, e) => Distributer(e.Data); }
private void Distributer(string msg) { StompFrame stomp = new StompFrame(msg); if (autoLog) { switch (stomp.GetServerCommand()) { case ServerCommand.CONNECTED: case ServerCommand.MESSAGE: Debug.Log("===> " + msg); break; case ServerCommand.ERROR: Debug.LogWarning("===> " + msg); break; case ServerCommand.RECEIPT: break; default: break; } } if (stomp.GetServerCommand() == ServerCommand.MESSAGE) { ReceiveMessage receive = JsonConvert.DeserializeObject <ReceiveMessage>(stomp.data); if (autoCallBackDict.TryGetValue(receive.type, out WebCallBack webCallBack)) { webCallBack(true, receive.sender, receive.content); } else if (subscribes.TryGetValue(stomp.GetHead("destination"), out OnMessageHandler onMessageHandler)) { onMessageHandler(stomp.data); } else { Debug.LogError("Received from unsubscribe dst " + stomp.GetHead("destination")); } } }