Как сделать приложение многопользовательским

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

В последнее время я читал о gRPC от Google. И мне интересно, хороший ли это выбор для приложения реального времени, такого как многопользовательская игра.

Например, можем ли мы создать игровой сервер с gRPC для многопользовательской игры в реальном времени?

1 ответ

Однако вы можете использовать многопользовательские игры в реальном времени, которые обычно предпочитают UDP, а не TCP для потоковой передачи, потому что TCP может иметь большую задержку из-за таких функций, как переупорядочивание и подтверждение пакетов.

Практически все работает для пошаговых игр. Единственное реальное соображение - "имеет ли значение задержка для вашей игры". gRPC не является решением для достижения чрезвычайно низкой задержки, вы сравниваете две разные оси.

В играх, где каждая миллисекунда на счету, это не рекомендуется, но вы можете, например, использовать его для передачи конфиденциальных данных без задержки, таких как игровые карты, результаты, чат.

У меня есть несколько учетных записей на моем домашнем ПК. Я хочу установить программу для всех учетных записей пользователей, а не только для той, которую я использовал для установки. Как мне это сделать?

Я установил программу из учетной записи администратора, но она не отображается в других локальных учетных записях.

Я не смог найти никакой документации о том, как это сделать.

У меня Windows 8.1, если это имеет значение.

1 ответ 1

Я полагаю, вы имеете в виду приложения не из метро. Этот ответ относится к Windows Vista и более поздним версиям, включая Windows 10.

  1. Найдите ярлык (ы) приложения в учетной записи пользователя, выполняющего установку. Общие места, где создаются иконки:
    • Меню Пуск пользователя:
      C:\Users\ \AppData\Roaming\Microsoft\Windows\Start Menu\Programs 1
    • Рабочий стол пользователя:
      C:\Users\ \Desktop 2
  2. Скопируйте ярлык (ы) в одно или оба из следующих мест:
    • Рабочий стол всех пользователей:
      C:\Users\Public\Public Desktop
    • Меню Пуск всех пользователей:
      C:\ProgramData\Microsoft\Windows\Start Menu\Programs 3

1 Также доступно через %APPDATA%\Microsoft\Windows\Start Menu\Programs
2 Также доступно через %USERPROFILE%\Desktop
3 Также доступно через %ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs

Несколько лет назад я создал простое приложение для отслеживания моего ежедневного статуса. Ничего особенного, вы просто добавляете строку, она вставляется в дату, я бы поставил время начала, время окончания и то, что я сделал. Все смеялись, но я держал это в течение 3 лет. Теперь начальник видит, насколько я "организован" (это просто длинная таблица), и хочет, чтобы я расширил приложение для всей команды. Он также хотел бы увидеть представление списка, которое у нас есть, так что для этого потребуется каким-то образом сделать его разделяемой БД. Я использую SQlite сейчас, так как все это на моей машине, так как мне расширить это приложение.

Я ищу идеи, так что все приветствуются.

Обновление: я предполагаю, что мой вопрос больше касается наличия сервера базы данных, а не встроенной базы данных, которую я имею сейчас. Нужно ли мне управлять параллелизмом и т. Д.?

4 ответа

Введите идентификационный номер пользователя в записи базы данных (или строку, представляющую их уникальное имя пользователя), чтобы пометить строки тем, кому они принадлежат.

Добавьте экран входа в систему, и если все доверяют друг другу, а не требуют пароля - просто выберите имя.

Когда пользователь входит в систему, отслеживайте его идентификатор пользователя, чтобы отфильтровать данные базы данных, используя WHERE userid = 5

В основном структура вашей программы остается неизменной, и вы вводите новое требование отслеживания идентификатора пользователя для текущего пользователя и фильтрации всего остального соответствующим образом на основе этого идентификатора пользователя для обеспечения надлежащих границ.

Это мое понимание применения нескольких арендаторов. Правильно ли я понимаю? Есть ли онлайн-многопользовательское приложение, которое я могу пройти.

2 ответа

Да, вот и все. Но определение википедии недостаточно общего. Он не рассматривает многоуровневые архитектуры или более новые формы архитектуры, такие как SOA или микросервисы.

Многопользовательская аренда о программных системах и изоляции данных . Некоторые примеры:

  • многоуровневая система с уникальной базой данных может быть многопользовательской. Пример: система SAP состоит из бэкэнда базы данных и нескольких серверов веб-приложений, которые предоставляют масштабируемые веб-сервисы. Это многопользовательский режим: вы можете добавить нового клиента без изменения текущей установки программного обеспечения, и несколько клиентов могут использовать систему, не зная друг о друге. Данные полностью изолированы (проприетарная технология).
  • ваша система состоит из одного или нескольких процессов, выполняющих веб-службы, которые подвергаются различным клиентам через разные доменные имена (но это все те же процессы, которые запускают его на сервере). Изоляция данных достигается с помощью отдельных баз данных. Это окончательно мульти-арендатор.
  • система микросервиса могла аналогичным образом запускать несколько слабо связанных наборов веб-сервисов, каждый из которых использует собственную микро-базу данных. Если необходимо, чтобы увеличить масштаб, вы можете запускать новые клоны тех же микросервисов, и они через некоторую функцию регистрации найдут своих сверстников и автоматически подключится к ним, предлагая пользователю поведение одного приложения. Тогда возможны два сценария:
    • Если, если вы хотите обслуживать нового клиента, вам нужно начать новый отдельный набор микросервисов и организовать, чтобы микросервисы для одного клиента подключались только к микросервисам, относящимся к одному и тому же клиенту, тогда это один арендатор.
    • , но если вы сможете обслуживать новых клиентов с использованием запущенных экземпляров (и новые микросервисы будут необходимы только для производительности), то это многопользовательский

    Я бы сказал, да, ваше понимание в основном правильное. Приложение разделяется несколькими клиентами, а также данные каждого клиента отображаются в базе данных. Совместное использование одного и того же кода без наличия данных разных клиентов, которые можно использовать в одной и той же базе данных, вероятно, не будет считаться мутантным.

    Похожие вопросы

    Популярные теги

    5 способов запустить несколько копий приложения на вашем Mac

    Вы можете иметь более одной учетной записи для определенных приложений, чтобы разделить вашу личную и профессиональную жизнь. Но macOS по-прежнему не может запускать несколько копий одного и того же приложения, что означает, что вам приходится постоянно входить и выходить, чтобы переключать профили.

    Пока Apple не предоставит эту функциональность изначально, есть несколько сторонних методов, на которые вы можете положиться. Вот как вы можете запустить более одного экземпляра одного и того же приложения в macOS.

    Почему вы можете запускать несколько экземпляров приложения

    Существует несколько сценариев, в которых может возникнуть необходимость запустить более одного сеанса приложения.

    Вы можете сделать это, чтобы использовать свои рабочие и личные учетные записи параллельно в разных окнах. Поскольку вам не нужно создавать нового пользователя на вашем компьютере, вы можете легко выполнять многозадачность между двумя профилями.

    Кроме того, эти методы не обязательно предназначены для обработки нескольких учетных записей одновременно. Они также могут пригодиться, если вы хотите, например, одновременно работать с многочисленными разделами или файлами в приложении. В этих случаях вы можете дважды войти в систему с одним и тем же профилем и открыть столько окон приложения, сколько захотите.

    Варианты для случайных целей

    Если вы ищете быстрый способ управления своими учетными записями, вам может не понадобиться проходить полные шаги для создания нескольких экземпляров приложения. Прежде чем углубиться в более продвинутые решения, ознакомьтесь с этими основными методами.

    1. Используйте встроенные многопользовательские функции приложений

    Управление несколькими аккаунтами в Google Chrome

    Чтобы обслуживать людей, которые манипулируют несколькими учетными записями, некоторые приложения начали включать многопользовательские функции. Без каких-либо внешних инструментов у вас есть возможность добавить несколько учетных записей и получить к ним доступ в общем или отдельном окне.

    2. Включить быстрое переключение пользователей на Mac

    Включить быстрое переключение пользователей Mac

    В macOS есть удобная функция для людей, которые ищут более эффективный способ перехода между своими учетными записями. Вызывается быстрое переключение пользователей , оно ускоряет процесс переключения учетных записей на вашем Mac. Хотя этот метод не позволяет создавать дополнительные экземпляры приложения, его использование едва ли требует от вас какой-либо настройки.

    Теперь вы можете щелкнуть свое имя пользователя в верхней строке меню и выбрать другого пользователя, чтобы мгновенно переключиться на него. Когда вы вернетесь, ваши текущие окна и активные приложения останутся такими, какими они были, когда вы их оставили.

    3. Воспользуйтесь преимуществами веб-приложения Сервиса

    веб и нативные приложения macOS

    Веб-приложения часто достаточно мощны, чтобы заменить их родные аналоги, предлагая аналогичную функциональность для настольных версий. Вы можете воспользоваться этим, чтобы эффективно открыть несколько экземпляров одного и того же приложения.

    Варианты расширенного использования

    Вышеуказанные параметры предназначены для обычных пользователей и технически не позволяют запускать несколько копий приложения Mac. Если ни один из них не сделал работу за вас, читайте дальше для более продвинутых методов.

    4. (На самом деле) Запуск нескольких копий приложения

    запустить несколько копий приложения на Mac

    Единственный способ на самом деле запустить несколько копий приложения в macOS — с помощью специального скрипта. Несмотря на то, как это звучит, процесс не требует никаких технических знаний и в значительной степени прост.

    Сначала откройте предустановленную программу Script Editor на вашем Mac. Это проще всего найти, открыв Spotlight с помощью Cmd + Space и выполнив поиск непосредственно по нему.

    Когда вы запустите Script Editor, вы увидите пустое окно редактирования документа. Здесь вам нужно сначала скопировать и вставить следующую строку:

    Скрипт редактора macos

    Перейдите в каталог, где вы сохранили файл. Если дважды щелкнуть значок, он запустит новый экземпляр связанного приложения. Вы можете повторить действие в зависимости от того, сколько копий вы хотите.

    Поскольку эти копии являются экземплярами, они не будут доступны среди других приложений. Вам придется делать это с самого начала каждый раз, когда вы хотите использовать свой второй аккаунт.

    5. Установите виртуальную машину


    Последний и самый глубокий метод — это установить виртуальную машину на ваш Mac. Виртуальные машины позволяют запускать другую операционную систему внутри настольного приложения. Они предназначены в основном для профессионалов и разработчиков, но вы также можете использовать их для разделения личных и рабочих учетных записей.

    Parallels — это популярный вариант, но он не бесплатный. Попробуйте VirtualBox, если хотите сделать это без оплаты. Любой из этих вариантов позволяет легко запускать программы Windows на macOS.

    Мастеринг приложений на вашем Mac

    Пока Apple не предоставит официальную опцию для запуска нескольких экземпляров одного и того же приложения, эти методы должны помочь вам. Но если вам не нравится настраивать виртуальные машины, к сожалению, ни одна из них не является идеальным решением.

    Читайте также: