Я создаю небольшую многопользовательскую игру, используя все серверные AWS сервисы в бэкэнде (API Gateway, Lambda, DynamoDB и др. c.). По образованию я не инженер-программист, поэтому я чаще сталкиваюсь с препятствиями.
Я столкнулся с проблемами при попытке отправить действия на AWS API-шлюз с использованием соединения через Websocket. Всякий раз, когда я пытаюсь отправить строку json, она принимается API-шлюзом с присутствием \ "отказов (например," body ":" {\ "action \": \ "get_player_status \", \ "username \": \ "asdasd \"} "). Шлюз API не может разобрать это и всегда вызывает действие $ default. У меня есть ключ маршрута с именем" get_player_status ", но он не вызывается.
Я пробовал разные подходит для борьбы с этим, но безуспешно. Сейчас у меня есть функция Lambda (Python), которая принимает все сообщения $ default, исправляет строку json, а затем перенаправляет ее в правильную функцию Lambda. Предполагается, что шлюз будет работать, но с гораздо большей задержкой и стоимостью.
Есть идеи?
Фрагмент кода из Unity в C#:
using NativeWebSocket;
[Serializable]
public class SendAction
{
public string action;
public string username;
}
void GetPlayerStatus()
{
SendAction getStatus = new SendAction();
getStatus.action = "get_player_status";
getStatus.username = username;
string jsonGetStatus = JsonUtility.ToJson(getStatus);
SendWebSocketMessage(jsonGetStatus);
}