public WebsocketMessage HandleMessage(WebsocketMessage message) { var toReturn = new WebsocketMessage(); toReturn.command = message.command; switch (message.command) { case "write": Console.WriteLine("<<<<< Comando: Write >>>>>"); toReturn.success = Write(message.tag); toReturn.tag = message.tag; break; case "read": Console.WriteLine("<<<<< Comando: read >>>>>"); var result = Read(); if (result != "failed") { toReturn.success = true; toReturn.tag = result; } else { toReturn.success = false; toReturn.tag = message.tag; } break; default: Console.WriteLine("<<<< Commando desconocido o flatante >>>"); break; } return(toReturn); }
private void EventBusOnConnectionEstablished(object sender, Version version) { log.Info($"Connected to FuelRats API version '{version}'"); var profileRequest = WebsocketMessage.Request("users", "profile", ApiEventNames.UserProfile); eventBus.PostWebsocketMessage(profileRequest); }
public HelloWorldMessage ConvertFromWebsocketMessage(WebsocketMessage websocketMessage) { var str = Encoding.UTF8.GetString(websocketMessage.Data); return(new HelloWorldMessage { HelloWorld = str == "Hello world!" }); }
private void EventBusOnProfileLoaded(object sender, User receivedUser) { PlayerInfo.User = receivedUser; var rescuesRequest = WebsocketMessage.Request("rescues", "read", ApiEventNames.RescueRead); rescuesRequest.AddData(nameof(Rescue.Status).ToApiName(), WebsocketMessage.Data("$not", RescueState.Closed.ToApiName())); eventBus.PostWebsocketMessage(rescuesRequest); }
private string BuildRequestMsg(WebsocketMessage subMsg, string msgType) { var reqMsg = new JArray(); reqMsg.Add(new JValue(0)); reqMsg.Add(new JValue(msgType)); reqMsg.Add(null); reqMsg.Add(JObject.FromObject(subMsg)); return(reqMsg.ToString()); }
public void SendMessage(WebsocketHandler websocketHandler, string message) { var websocketMessage = new WebsocketMessage(); websocketMessage.Data = Encoding.UTF8.GetBytes(message); websocketMessage.Opcode = WebsocketMessage.Opcodes.Text; websocketMessage.FIN = true; websocketMessage.Masked = true; rng.GetBytes(websocketMessage.Mask); websocketHandler.QueueMessage(websocketMessage); }
public void SendMessage(string dataType) { message = new WebsocketMessage() { type = dataType, value = "" }; JsonMessage = JsonUtility.ToJson(message); websocket.SendText(JsonMessage); //Send Data }
private void EventBusOnConnectionEstablished(object sender, Version version) { log.Info($"Connected to FuelRats API version '{version}'"); var profileRequest = WebsocketMessage.Request("users", "profile", ApiEventNames.UserProfile); eventBus.PostWebsocketMessage(profileRequest); var rescuesRequest = WebsocketMessage.Request("rescues", "read", ApiEventNames.RescueRead); rescuesRequest.AddData(nameof(Rescue.Status).ToApiName(), WebsocketMessage.Data("$not", RescueState.Closed.ToApiName())); eventBus.PostWebsocketMessage(rescuesRequest); }
public void SendPlayerInformation(Player playerData) { JsonPlayer = JsonUtility.ToJson(playerData); message = new WebsocketMessage() { type = "LEADERBOARD_SUBMIT", value = JsonPlayer }; JsonMessage = JsonUtility.ToJson(message); websocket.SendText(JsonMessage); //Send Data }
private async Task HandleDeafen() { var voiceManager = DiscordManager.GetDiscord().GetVoiceManager(); voiceManager.SetSelfDeaf(!voiceManager.IsSelfDeaf()); var isDeafened = voiceManager.IsSelfDeaf(); Console.WriteLine("Deafened changed to " + isDeafened); var msg = new WebsocketMessage() { Type = RichPresenceMessageTypes.VoiceStatus }; msg.From(new VoiceStatusMessage { IsConnected = true, IsMuted = IsSelfMuted(voiceManager), IsDeafened = voiceManager.IsSelfDeaf() }); await Send(msg); }
private async Task HandleClickedConnect(VoiceLobbyMessage voiceLobbyMessage) { var lobbyManager = DiscordManager.GetDiscord().GetLobbyManager(); // Search lobbies. var query = lobbyManager.GetSearchQuery(); // Filter by a metadata value. query.Filter("metadata.FoundryRemoteIp", LobbySearchComparison.Equal, LobbySearchCast.String, voiceLobbyMessage.WorldUniqueIdentifier); // Only return 1 result max. query.Limit(1); Console.WriteLine("Searching for existing Lobbies with FoundryRemoteIp of " + voiceLobbyMessage.WorldUniqueIdentifier); lobbyManager.Search(query, (_) => { Console.WriteLine("Search returned {0} lobbies", lobbyManager.LobbyCount()); if (lobbyManager.LobbyCount() == 1) { CurrentLobby = lobbyManager.GetLobby(lobbyManager.GetLobbyId(0)); Console.WriteLine("Sirst lobby secret: {0}", CurrentLobby.Value.Secret); lobbyManager.ConnectLobby(CurrentLobby.Value.Id, CurrentLobby.Value.Secret, (Result result, ref Lobby connectedLobby) => { CurrentLobby = connectedLobby; Console.WriteLine("Connected to Lobby " + CurrentLobby.Value.Id + " ? " + result); // Connect to voice chat. lobbyManager.ConnectVoice(CurrentLobby.Value.Id, async(_) => { Console.WriteLine("Connected to voice chat!"); var voiceManager = DiscordManager.GetDiscord().GetVoiceManager(); var msg = new WebsocketMessage() { Type = RichPresenceMessageTypes.VoiceStatus }; msg.From(new VoiceStatusMessage { IsConnected = true, IsMuted = voiceManager.IsSelfMute(), IsDeafened = voiceManager.IsSelfDeaf() }); await Send(msg); }); }); } else if (lobbyManager.LobbyCount() == 0) { var transaction = lobbyManager.GetLobbyCreateTransaction(); transaction.SetCapacity((uint)voiceLobbyMessage.VoicePartySize); transaction.SetType(LobbyType.Public); transaction.SetMetadata("FoundryRemoteIp", voiceLobbyMessage.WorldUniqueIdentifier); lobbyManager.CreateLobby(transaction, (Result result, ref Lobby createdLobby) => { CurrentLobby = createdLobby; Console.WriteLine("Created new Lobby " + CurrentLobby.Value.Id); if (result != Result.Ok) { Console.WriteLine("Couldn't create new Discord lobby"); return; } // Connect to voice chat. lobbyManager.ConnectVoice(CurrentLobby.Value.Id, async(_) => { Console.WriteLine("Connected to voice chat!"); var voiceManager = DiscordManager.GetDiscord().GetVoiceManager(); var msg = new WebsocketMessage() { Type = RichPresenceMessageTypes.VoiceStatus }; msg.From(new VoiceStatusMessage { IsConnected = true, IsMuted = voiceManager.IsSelfMute(), IsDeafened = voiceManager.IsSelfDeaf() }); await Send(msg); }); }); } }); }
bool IWebsocketModule.HandleReceivedMessage(Client.Client client, WebsocketHandler handler, WebsocketMessage receivedMessage) { var messageString = Encoding.UTF8.GetString(receivedMessage.Data); client.Log(">" + messageString); return(false); }
bool IWebsocketModule.HandleReceivedMessage(ServerSide.Server server, WebsocketHandler handler, ClientData client, WebsocketMessage receivedMessage) { this.SendMessage(handler, client, receivedMessage); return(false); }
public void SendMessage(WebsocketHandler handler, ClientData client, WebsocketMessage message) { handler.QueueMessage(client, message.Data, WebsocketMessage.Opcodes.Binary); }
public async Task HandleMessage(WebsocketMessage message) { var msg = JsonConvert.DeserializeObject <T>(message.Payload); await OnMessage(msg); }
public void SendMessage(WebsocketMessage message) { this.WebsocketRoutingHandler.QueueMessage(this.ClientData, message); }
public T ConvertFromWebsocketMessage(WebsocketMessage websocketMessage) { return(this.convertFrom(websocketMessage)); }
public void CallHandleReceivedMessage(WebsocketMessage receivedMessage) { this.HandleReceivedMessage(receivedMessage); }
public void PostWebsocketMessage(WebsocketMessage websocketMessage) { websocketHandler.SendQuery(websocketMessage); }
public abstract void HandleReceivedMessage(WebsocketMessage receivedMessage);
protected override async Task OnMessage(ModuleLaunchedMessage message) { var userManager = DiscordManager.GetDiscord().GetUserManager(); userManager.OnCurrentUserUpdate += async() => { var currentUser = userManager.GetCurrentUser(); Console.WriteLine("User fetched: {0} ({1})", currentUser.Username, currentUser.Id); // Request users's avatar data. // This can only be done after a user is successfully fetched. var imageManager = DiscordManager.GetDiscord().GetImageManager(); imageManager.Fetch(ImageHandle.User(currentUser.Id), async(result, handle) => { if (result == Result.Ok) { Console.WriteLine("Fetched Image, processing.."); // You can also use GetTexture2D within Unity. // These return raw RGBA. var data = imageManager.GetData(handle); var rgbaList = new List <Rgba32>(); for (int x = 0; x < data.Length; x += 4) { rgbaList.Add(new Rgba32(data[x], data[x + 1], data[x + 2], data[x + 3])); } var image = Image.LoadPixelData <Rgba32>(data, 128, 128); var base64 = image.ToBase64String(PngFormat.Instance); #if DEBUG Console.WriteLine(base64); #endif var discordProfileInfo = new DiscordProfileInfoMessage { AvatarBase64 = base64, DiscordId = currentUser.Id }; Console.WriteLine("Sent avatar!"); var msg = new WebsocketMessage() { Type = RichPresenceMessageTypes.DiscordProfileInfo }; msg.From(discordProfileInfo); await Send(msg); } else { Console.WriteLine("Image error {0}", handle.Id); } }); var lobbyManager = DiscordManager.GetDiscord().GetLobbyManager(); var voiceManager = DiscordManager.GetDiscord().GetVoiceManager(); if (CurrentLobby.HasValue) { var msg = new WebsocketMessage() { Type = RichPresenceMessageTypes.VoiceStatus }; msg.From(new VoiceStatusMessage { IsConnected = true, IsDeafened = voiceManager.IsSelfDeaf(), IsMuted = IsSelfMuted(voiceManager) }); await Send(msg); } lobbyManager.OnSpeaking += HandleSpeaking; }; void HandleSpeaking(long lobbyId, long userId, bool speaking) { var msg = new WebsocketMessage() { Type = RichPresenceMessageTypes.Speaking }; msg.From(new SpeakingMessage { DiscordId = userId, IsSpeaking = speaking }); Send(msg).GetAwaiter().GetResult(); } }