Flash и PHP, живая среда пользователя: как использовать сокеты? - PullRequest
0 голосов
/ 07 апреля 2009

Я искал Google, чтобы выяснить, как заставить Flash собрать как минимум двух пользователей в одной среде. Например, я пытался сделать так: оба пользователя загружают http://example.com/myflashenvironment.html,, и на этой странице находится один и тот же файл flashenv.swf, который они оба видят с двух разных компьютеров. В flashenv.swf есть объект movieclip, который можно перетаскивать. Я хочу сделать так, чтобы, если пользователь 1 перетаскивает мувиклип, тогда пользователь 2 может видеть, как он перетаскивается через Интернет в какой-то онлайн-форме сделки. Я пытался сделать это во время выполнения, как онлайн-игра.

Я искал в Google и нашел кое-что о сокетах, но очень трудно просто прыгнуть прямо в то время, когда ты - я. Я уже пытался выяснить, что мне нужен PHP-файл, который создает соединения с моим сервером с fsockopen, а затем мне нужно создать сокет? Но тогда я не знаю, как заставить пользователя 1 записать (x, y) координаты мувиклипа, когда он его перетаскивает, и чтобы пользователь 2 автоматически взял те же координаты.

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

Ответы [ 5 ]

2 голосов
/ 07 апреля 2009

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

Но не важно, что PHP - это не то, что вам нужно. PHP не создан для такого рода вещей. То, что вам нужно, это какой-то отдельный сервер - вам, например, придется кататься самостоятельно, используя C ++ или Java. PHP создан для коротких запросов - вы не можете запустить его как сервер. Да, у него есть разъемы, но они также предназначены для быстрых одноразовых подключений. Вам нужно что-то, что всегда работает, я полагаю.

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

0 голосов
/ 07 апреля 2009

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

Компания Adobe создала класс общего объекта именно для этой цели. Вам необходимо иметь сервер, на котором работает Flash Media Server (или эквивалентный) и использовать удаленные общие объекты .

0 голосов
/ 07 апреля 2009

возможно создать сервер сокетов, который вы хотите в php, но я не очень рекомендую это.

отличие от традиционных сценариев php заключается в том, что вы запускаете его не так, как если бы он вызывался через браузер, а долгое (с бесконечным циклом) приложение cli-server (больше похоже на java)

упрощенно это работает так:

  1. php: скрипт запускается и прослушивает входящий запрос
  2. flash: приложение flash запускается и подключается к серверу
  3. php: соединение (из 2) хранится в массиве
  4. мигание: теперь, если пользователь перемещает свой видеоклип, координаты отправляются в сценарий
  5. php: данные поступают (координаты от 4). теперь вы перебираете все соединения и ...
  6. ... отправить данные всем остальным мувиклипам
  7. мигает: если поступают данные (из 6), обновите позицию mc соответственно
  8. если флэш-соединение разорвано, удалите его из массива

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

0 голосов
/ 07 апреля 2009

Если вы новичок в многопользовательской Flash, я рекомендую использовать SmartFox Server. Он очень прост в использовании и содержит множество учебных пособий.

0 голосов
/ 07 апреля 2009

Сомнительно (но не без приоритета) писать и запускать сервер на PHP. Предлагаемое решение на основе Java лучше подходит для ваших нужд.

...