ФорумПрограммированиеPHP для идиотов → вебсокет + php + json

вебсокет + php + json

  • tipugin

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 30 июня 2010 г. 0:57

    Всем привет! Подскажите, почему отправляемая сервером по вебсокету строка, которая вроде бы вполне себе json - не распознается jQuery-ским parseJSON (invalid json пишет)?
    Отправляется это вот так:
    сервер-сайд

    # подготовка и отправка
    protected function process($client, $message) {
    $data = array(
    'body' => 'hello world'
    );
    $data = json_encode($data);
    $this->send($client->_socket, $data);
    }

    # отправляю по сокету
    protected function send($client, $message) {
    $message = $this->wrap($message);
    socket_write($client, $message, strlen($message));
    }

    # подготовка сообщения
    protected function wrap($message = "") {
    return chr(0).$message.chr(255);
    }

    клиент
    var webSocketHost = "ws://localhost:8080/server.php";
    var webSocket = null;
    function initWebSocket() {

    webSocket = new WebSocket(webSocketHost);

    webSocket.onopen = function(event) {
    console.log("Connected to host.");
    }
    webSocket.onmessage = function(event) {
    console.log("Response: " + event.data)
    var obj = $.parseJSON(event.data);
    }
    webSocket.onclose = function(event) {

    }
    }

    $(function() {
    initWebSocket();
    })

    И вижу в консоле:
    Connected to host.
    Response:
    Спустя 173 сек.
    Точнее в консоли:

    Connected to host.
    Response:
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 июня 2010 г. 0:57, спустя 20 секунд

    Connected to host.
    Response:

    у тебя с виду вообще ничего не приходит .. )
    Сапожник без сапог
  • tipugin

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 30 июня 2010 г. 0:59, спустя 2 минуты

    Да это мля парсер режет все =( не могу никак кнопочку Редактировать найти =(
    вобщем у меня там приходит
    Connected to host.
    Response:
    Спустя 35 сек.
    да чо такое, короче прриходит json-строка, но jquery отказывается ее принимать
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 июня 2010 г. 1:00, спустя 49 секунд

    tipugin, может он на 0x00 и 0xFF ругается? ;)
    Сапожник без сапог
  • tipugin

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 30 июня 2010 г. 1:09, спустя 9 минут 14 секунд

    тьфю, точно. регэкспами вырезал =) спасибо
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 июня 2010 г. 1:11, спустя 1 минуту 49 секунд


    тьфю, точно. регэкспами вырезал =) спасибо
    можно было substr … регулярки это жесть для такой задачи конечно)
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 30 июня 2010 г. 1:18, спустя 6 минут 50 секунд

    а откуда там это оказалось?
  • tipugin

    Сообщения: 9 Репутация: N Группа: Кто попало

    Spritz 30 июня 2010 г. 10:08, спустя 8 часов 50 минут 38 секунд

    Вроде как для передечи по вебсокету это необходимо. Поправьте, если я не прав.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 июня 2010 г. 10:37, спустя 28 минут 56 секунд


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

    таки да, надо я думаю
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!