Porque vi alguém perguntando sobre a comparação entre Nusoap e PHPRPC, para que todos entendam mais claramente a relação entre Nusoap e PHPRPC, farei aqui uma breve introdução explicativa. O conteúdo escrito não é exaustivo. . comparação. Para comparações mais detalhadas, você mesmo pode compará-las durante o uso.
Nusoap é uma implementação de serviço Web para PHP. A versão PHP da implementação do protocolo PHPRPC está no mesmo nível do Nusoap. No entanto, o protocolo PHPRPC está no mesmo nível do Web Service, então vamos comparar a implementação do Nusoap com a versão PHP da implementação do protocolo PHPRPC e comparar o Web Service com o protocolo PHPRPC.
Primeiro, comparação de protocolos:
semelhanças:
Ambos os protocolos são baseados no protocolo HTTP e podem usar o método POST para enviar solicitações.
Principais diferenças:
(1) Solicitação: Embora o WebService também suporte o método GET para enviar solicitações, geralmente não é comumente usado. O método comumente usado é usar o método POST para enviar solicitações no formato SOAP. PHPRPC suporta métodos GET e POST para enviar solicitações. O formato de solicitação é o formato application/x-www-form-urlencoded mais comum, que é mais fácil de implementar em um cliente de navegador.
(2) Resposta: A resposta retornada pelo WebService são dados no formato SOAP. Para o cliente navegador, ela só pode ser processada usando XMLHttpRequest. Como XMLHttpRequest recebe restrições em chamadas entre domínios, o cliente navegador do WebService não é possível. chamar serviços entre domínios. O formato de resposta do PHPRPC é texto simples compatível com o formato JavaScript, portanto, a resposta retornada pode ser executada diretamente como um script. Portanto, o cliente do navegador pode ser implementado de forma completamente independente do XMLHttpRequest. O navegador permite download e execução de scripts entre domínios, para que o cliente do navegador PHPRPC possa fazer chamadas entre domínios.
(3) Formato de troca de dados: O formato SOAP utilizado no WebService é definido com base na linguagem XML. A linguagem XML é texto simples, pois alguns espaços (espaços, tabulações, retornos de carro ou quebra de linha) não afetam o conteúdo que representa, portanto. seu formato pode ser organizado em um formato de fácil leitura para humanos. Porém, devido a essa flexibilidade, é ineficiente para processamento por máquina. O formato de troca de dados do PHPRPC é o formato de serialização PHP. O formato de serialização PHP pode ser considerado como texto semi-plano, porque seu formato de representação de dados também é expresso de forma legível por humanos, mas não mais do que Blank, que fornece um bom suporte para máquina. legibilidade. Ele não apenas fornece delimitadores eficazes, mas também fornece informações como comprimento da string, número de elementos da matriz, número de membros do objeto, etc., portanto, é mais propício ao processamento em alta velocidade pela máquina. Porque o protocolo é essencialmente uma linguagem de máquina-máquina, e não uma linguagem de programação de computador. A linguagem de programação de computador é uma linguagem homem-máquina. Deve prestar mais atenção à legibilidade humana, enquanto a linguagem máquina-máquina deve prestar mais atenção à legibilidade da máquina. Portanto, pode-se dizer que o formato de serialização PHP atinge um equilíbrio muito bom entre legibilidade humana e legibilidade por máquina.
(4) Ocupação de largura de banda: WebService é um serviço Web pesado, seu formato de dados é longo e demorado e ocupa uma grande quantidade de largura de banda de rede. PHPRPC é um serviço Web leve, com formato de dados simples e compacto e baixo uso de largura de banda de rede. Observe que o peso pesado e o peso leve mencionados aqui referem-se à ocupação da largura de banda da rede, não à sua capacidade de fornecer serviços. Os recursos de serviço fornecidos pelo PHPRPC não são de forma alguma inferiores ao WebService, e até melhores do que o WebService em muitos lugares. Por exemplo: WebService é como o modelo de rede de 7 camadas do OSI. Parece perfeito, mas é complexo de implementar e difícil de usar. PHPRPC é como um modelo de rede TCP/IP simplificado de 5 camadas, que é eficiente e fácil de usar.
Em segundo lugar, vamos comparar as versões Nusoap e PHP da implementação do protocolo PHPRPC:
A semelhança é que ambos são usados em PHP.
A diferença está principalmente na facilidade de uso. Embora o Nusoap seja muito bom em termos de facilidade de uso, ele está muito atrás da versão PHP da implementação do protocolo PHPRPC. Por exemplo, as funções de serviço publicadas pelo Nusoap precisam ser escritas separadamente e não podem ser escritas da mesma forma que as funções locais, muito menos as funções estendidas integradas no PHP. No entanto, as funções publicadas pelo PHPRPC são exatamente iguais às funções locais. , mesmo incluindo funções integradas do PHP, funções estendidas também podem ser publicadas diretamente. Para usar o Nusoap para publicar um WSDL, você precisa definir o nome, nome do parâmetro, tipo de parâmetro, tipo de valor de retorno, namespace, ação, estilo, documento, etc. Para publicar um serviço PHPRPC, você só precisa informar ao servidor o nome da função (que também pode ser um método de objeto ou um método de classe) a ser publicada (um alias também pode ser fornecido). Não há necessidade de fornecer informações como nomes de parâmetros, tipos de parâmetros, tipos de valores de retorno, etc. Portanto, para parâmetros de comprimento variável, os parâmetros de tipo variável têm melhor suporte. Também é conveniente usar o cliente PHPRPC. Você pode chamar diretamente a função remota usando o método do cliente PHPRPC local nomeado com o nome da função remota, enquanto Nusoap é relativamente mais problemático. Outra grande vantagem do PHPRPC é que ele permite fazer chamadas remotas facilmente por meio de transmissão criptografada segura, o que o Nusoap não pode fazer.