Простой пример кометы с помощью php и jQuery

! средства инвертируют булево состояние, два !, с является ничем специальным кроме двойного отрицания.

!true == false
# => true

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

!"wtf"
# => false

!!"wtf"
# => true

А более реальный вариант использования:

def title
  "I return a string."
end

def title_exists?
  !!title
end

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

34
задан Kalamarico 20 December 2017 в 10:02
поделиться

5 ответов

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

Вы пробовали что-нибудь из этого и сталкивались с конкретными проблемами?

2
ответ дан 27 November 2019 в 17:13
поделиться

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

Вы найдете здесь два примера. Первый использует технику iframe, а второй - постоянное соединение.

1
ответ дан 27 November 2019 в 17:13
поделиться

You should use polling, or use a web server which is specially conceived for long requests and COMET, with a good JS backend:

function listen() {
    $.get("/mylongrequestfile", {}, function(data) {
        $("#mydiv").html(data);
        listen(); // then launch again
    }));
};

Remember that COMET is "wait for data, if there's data return and exit", so JS backend will have to parse the data and re-launch the process of asking the server.

In this example, if there is a server side problem or just a disconnection from the user side, the entire process will be broken (the function is only called if the request is successful)

15
ответ дан 27 November 2019 в 17:13
поделиться

Для IIS есть WebSync . Однако, так как вы используете PHP, возможно, лучше использовать WebSync On-Demand. Любой из них даст вам нужный сервер, и он прост в использовании. Взгляните на этот квест n также, который, в основном, то, что вы ищете.

Вот простой пример WebSync On-Demand in action с использованием скриптового языка no. Просто откройте в двух окнах и посмотрите на публикацию/подписку в действии.

Для публикации с сервера вы можете использовать PHP api.

0
ответ дан 27 November 2019 в 17:13
поделиться

У меня есть очень простой пример, который поможет вам начать работу с кометой. Он охватывает компиляцию Nginx с модулем NHPM и включает код для простых ролей издателя/подписчика в jQuery, PHP и Bash.

http://blog.jameisaacs.com/2010/08/27/comet-with-nginx-and-jquery/

Рабочий пример (простой чат) можно найти здесь:
http:/ /cheetah.jameisaacs.com/

3
ответ дан 27 November 2019 в 17:13
поделиться
Другие вопросы по тегам:

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