У меня есть сервер AIR, получающий сообщения. У меня есть клиентские приложения Flash, которые отправляют сообщения. Сейчас я просто тестирую с одним клиентом. Боюсь, что эта проблема может усугубиться, когда два клиента отправляют координаты ... еще не проверили.
Я отправляю координаты мыши клиента в виде серии сообщений String, например, «100,200», а затем анализирует его на стороне сервера. Когда пользователь перемещает мышь по клиенту, я отправляю большое количество этих сообщений на сервер.
Большую часть времени на сервере, когда я читаю сообщение, я получаю один x, y ... это здорово. Иногда, когда я читаю сообщение, координаты соединяются вместе ...
Так что, если я отправляю (в быстрой последовательности)
"100200"
"123456"
"111222"
Когда сервер прочитает это, я увижу
"100,200123,456111,222"!
Вот код на стороне клиента:
socket.writeUTFBytes( coordString ); //an x,y pair
socket.flush(); //make sure it's sent
Как мне это предотвратить? Это потому, что я отправляю сообщения в быстрой последовательности?
NB
Предложения для возможной отправки в другом формате хороши. На данный момент, я просто пытаюсь сделать это простым. Сообщения в основном представляют собой координаты мыши, поскольку пользователь перетаскивает свою мышь на клиенте. Время от времени появляется сообщение о состоянии. Все сообщения действительно короткие ... например. «ЗЕЛЕНЫЙ», «КРАСНЫЙ» и т. Д. Я мог бы также отправить целые числа, и это уменьшит количество отправляемых байтов. Строка "100" составляет 3 байта, но я думаю, что как целое число это может занять 2 байта ... поэтому я сохраняю там байт. На данный момент я не вижу никакой задержки на сервере, когда он получает координаты мыши и что-то перемещает на экране сервера. Я могу перейти к отправке байтов, если это станет проблемой.
Для тех из вас, кто нашел этот вопрос и отправляет более сложные сообщения, возможно, было бы неплохо использовать AMF, JSON, XML.