net.pipe по сравнению с net.tcp по сравнению с http Привязкой

Как и в предыдущем ответе, я предлагаю класс. Здесь я на самом деле назову класс и передам данные конструктору. Итерация по массиву может быть выполнена с помощью методов current и next:

class ResultSet {
    private $array = [];
    public $num_rows = 0;
    public function __construct($data) {
        $this->array = $data;
        $this->num_rows = count($this->array);
    }
    public function fetch_assoc() {
        $val = current($this->array);
        next($this->array);
        return $val;
    }
}

До тех пор, пока она не будет исправлена. Вы бы поиграли с данными в следующем:

$result = new ResultSet([
        ["name"=>"Toby",   "q1"=>"1"],
        ["name"=>"Phelps", "q1"=>"1"],
        ["name"=>"Davies", "q1"=>"1"],
        ["name"=>"Keith",  "q1"=>"1"],
    ]);

Я не реализовал поддержку count($result), так как не думаю, что она поддерживается и в реальных наборах результатов mysqli. Вы получаете счет через ->num_rows (как и вы).

60
задан Uwe Keim 31 January 2018 в 06:23
поделиться

3 ответа

Хотя это не очень удобно для предоставления конкретных примеров использования, здесь есть ссылка из MSDN, в которой перечислены все функции для привязок.

http://msdn.microsoft.com/en-us/library/ms730879.aspx

Вот неплохая блок-схема, которая также может помочь в выборе между ними.

Flowchart

Источник: http: //bloggingabout.net/blogs/dennis/archive/2006/12/01/WCF-Binding-decision-chart.aspx

Here - хорошая общая статья, которую я использовал в прошлом.

http: / /mkdot.net/blogs/dejan/archive/2008/03/31/wcf-binding-decision.aspx (или здесь на машине обратного хода, если ссылка больше не работает для вас).

66
ответ дан 24 November 2019 в 17:40
поделиться

net.pipe, быстрый и безопасный, потому что ваш веб-сервис недоступен из сети (обычно вы используете net .pipe для легкого взаимодействия со службой Windows).

http, вы будете использовать его по причине совместимости, если ваша веб-служба не использует HTTP, Silverlight или Flash не могут ее использовать (поскольку браузер фильтрует не-http пакеты, так как это делает брандмауэр).

net.tcp немного быстрее, потому что ваше мыльное сообщение не заключено в HTTP-запрос, но вы не можете вызвать свой веб-сервис с технологией RIA, и какой-то брандмауэр отбросит ваше сообщение.

52
ответ дан 24 November 2019 в 17:40
поделиться

Windows Communication Foundation (WCF) - это платформа для создания служб, обрабатывающих сообщения XML. WCF позволяет передавать сообщения с использованием различных транспортных протоколов (таких как HTTP, TCP и MSMQ) и с использованием различных представлений XML (таких как текст, двоичный код или MTOM, что обычно называется кодировкой сообщений в WCF.

Если вы хотите разместить много служб WCF на одном компьютере и хотите, чтобы они использовали общую память для обмена данными, используйте именованный канал => net.pipe, а затем используйте tcp для связи со службами WCF на разных компьютерах.

Конфигурация привязки nettcp фокусируется на создании стека каналов, который будет лучше работать в средах Windows, что дает вам отличный вариант для замены ваших различных инвестиций в удаленное взаимодействие COM + и .NET.

BasicHttpBinding был разработан для сценариев, в которых взаимодействие имеет первостепенное значение. В результате BasicHttpBinding использует HTTP для транспорта и текст для кодировки сообщения.

14
ответ дан 24 November 2019 в 17:40
поделиться
Другие вопросы по тегам:

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