Контакты

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (6)
  • Чем WebSocket в php отличается от того же в js?

    iMukcep
    @iMukcep
    Вопрос задан крайне некорректно. WebSocket - это протокол передачи данных, который работает поверх TCP. Есть WS-клиент, и есть WS-сервер, к которому подключаются клиенты.

    Далее, по теме вопроса: Клиент можно написать на чём угодно, хоть на php (при большом желании), хоть на js (на js на это уходит пару строк кода). Так что можно сказать одно - отличие разве что в реализации, ну и осмысленностью действий, ибо никогда не сталкивался с необходимостью писать клиент на PHP.

    И да, на последок: писать WS-сервер на php - заведомо гиблое дело, сам с этим сталкивался. Пришлось в итоге искать альтернативы в виде Python'a и NoneJS.

    Поправьте, если где ошибся.

    UPD:
    Ссылки:
    https://ru.wikipedia.org/wiki/WebSocket
    https://learn.javascript.ru/websockets
    https://habrahabr.ru/post/209864/
    https://github.com/varspool/Wrench
    Ответ написан
  • Как вывести значение переменной из функции?

    iMukcep
    @iMukcep
    Читай мануал - php.net/manual/ru/functions.returning-values.php
    <?php
    function getProtocol()
    {
        if ($_SERVER['HTTPS'] == '') {
            return 'http';
        } else {
            return 'https';
        }
    }
    
    $protocol = getProtocol(); // Объявляем переменную protocol, которой присваиваем возвращаемое значение ф-и getProtocol 
    echo $protocol; // Выводим переменную на экран
    // Можно и не объявлять переменную - можно просто сделать echo getProtocol();
    // Но если значение будет использоваться более одного раза, то следует объявить переменную.
    ?>
    Ответ написан
    Комментировать
  • Как сделать так, чтобы бот отправлял сообщения каждый раз, когда ему написал пользователь?

    iMukcep
    @iMukcep
    https://habrahabr.ru/post/319178/ - вот статья по работе с этой библиотекой, почитайте. Там под спойлером есть пример кода, немного переделаем, и вот - пробуйте:
    import vk
    from time import sleep
    
    
    def get_msgs():
        mg = vk.messages.getDialogs(count="1", unread='1', v='5.14')  # Вместо messages.get используем messages.getDialogs, т.к. это и правильней и логичней. За подробностями - лезем в vk.com/dev
        if mg['count'] > 0:  # Если у нас есть непрочитанные сообщения, то надо бы на них ответить.
            user_id = mg['items'][0]['message']['user_id']  # Выковыриваем из json-а uID написавшего, а так же текст сообщения (для лога)
            msg_body = mg['items'][0]['message']['body']
            print("Боту написали сообщение! [Infa]: uID: " + str(user_id) + " Текст сообщения: " + msg_body)  # Отчёт о работе.
            vk.messages.send(user_id=user_id, message="Здравствуй!")  # Собственно, отвечаем.
    
    
    if __name__ == '__main__':
        session = vk.AuthSession(app_id=" ", user_login="", user_password="", scope="messages, wall") # Дальше всё понятно.
        vk = vk.API(session)
        while True:
            get_msgs()
            sleep(5) # Период обновления - 5с, чтобы ВК не ругался на частые запросы.

    P.s
    Это вроде не самое оптимальное решение, т.к. у ВК для сообщений и прочего есть Long Poll сервер: https://vk.com/dev/using_longpoll
    Ответ написан
    4 комментария

Лучшие вопросы пользователя

Все вопросы (2)