У меня есть мобильное приложение, опубликованное в google play, и в настоящее время оно работает довольно хорошо, и на нем одновременно работают 6-8 тысяч пользователей. На самом деле мне нужна помощь, чтобы изменить архитектуру и обмен данными между сервером и клиентом Android. Вот сценарий.
1- 1-linux сервер в частной сети. Недоступно из интернета.
2- 1-сервер Windows в общедоступной сети.
3- 1-мобильное приложение.
Связь идет так.
Каждый запрос с мобильного телефона на сервер приложений Windows через API Rest, разработанный в asp.net с использованием C #. Затем оставшийся API связывается с сервером Linux через протокол TCP. Получает данные с сервера Linux и отправляет их обратно в приложение через API остальных. Это хорошо работает для небольшого количества пользователей около 8 КБ. Основная проблема - связь между сервером приложений Windows и сервером Linux из-за ограничения TCP.
Связь между оставшимся API является сервером linux
Rest API создает TCP-сокет, используя IP-адрес сервера и PORT для каждого нового запроса, а затем
1-Logins to system using username and password
2-Sends the command to get specific data.
3-Receives the desired data.
4-Logouts from linux server.
5-Disposes off the socket and sends this result to mobile application.
Из-за большого количества запросов от мобильного пользователя вышеуказанные шаги повторяются снова и снова, что в конечном итоге приводит к засорению порта на сервере. После обсуждения с владельцем сервера я должен создать длительный сеанс TCP с сервером linux, который будет оставаться подключенным все время, и все запросы будут отправляться по этому каналу без отключения / удаления сокета каждый раз и повторного создания. Я хочу способ создать длинный сеанс TCP с сервером Linux. Но это невозможно с Rest API. Моя точка зрения в том, как я могу добиться этого в текущем сценарии У меня есть платформное ограничение C # и dotnet. Я не очень разбираюсь в dotnet, так как я разработчик Android. Любая помощь будет в значительной степени присвоена.