Hprose — это высокопроизводительный движок удалённого взаимодействия объектов.
Это современное, лёгкое, кросс-языковое, кроссплатформенное, объектно-ориентированное, высокопроизводительное, удалённое динамическое коммуникационное промежуточное ПО. Оно не только простое в использовании, но и мощное. Вам потребуется немного времени на изучение, после чего вы сможете использовать его для простого создания распределённых систем кросс-языкового кросс-платформенного взаимодействия.
Hprose поддерживает множество языков программирования, например:
С помощью Hprose вы можете удобно и эффективно взаимодействовать между этими языками программирования.
Этот проект представляет собой реализацию Hprose для Node.js.
Документы Hprose 2.0 для Node.js (на китайском языке): https://github.com/hprose/hprose-nodejs/wiki
Использовать Hprose для Node.js очень просто. Вы можете создать сервер hprose, как показано ниже:
var hprose = require("hprose");
function hello(name) {
return "Hello " + name + "!";
}
var server = hprose.Server.create("http://0.0.0.0:8080");
server.addFunction(hello);
server.start();
Для запуска используйте:
node --harmony server.js
--harmony — это опция v8, hprose использует её для оптимизации сериализации. Это необязательная опция, но рекомендуется её использовать.
На самом деле большинство методов сервисов nodejs асинхронны, вы можете опубликовать асинхронную функцию следующим образом:
var hprose = require("hprose");
function hello(name, callback) {
setTimeout(function() {
callback("Hello " + name + "!");
}, 10);
}
var server = hprose.Server.create("http://0.0.0.0:8080");
server.addAsyncFunction(hello);
server.start();
Затем вы можете создать клиент hprose, чтобы вызвать его следующим образом:
var hprose = require("hprose");
var client = hprose.Client.create("http://127.0.0.1:8080/");
var proxy = client.useService();
proxy.hello("world", function(result) {
console.log(result);
});
Чтобы запустить его, используйте:
node --harmony client.js
или
node --harmony-proxies client.js
Без --harmony-proxies вам нужно создать прокси следующим образом:
var hprose = require("hprose");
var client = hprose.Client.create("http://127.0.0.1:8080/");
var proxy = client.useService(["hello"]);
proxy.hello("world", function(result) {
console.log(result);
});
Или создайте клиент... #### Обработка исключений
Если на сервере произошла ошибка или ваша служебная функция/метод генерирует исключение, оно будет отправлено клиенту. Вам необходимо передать функцию обратного вызова для обработки ошибок после функции обратного вызова успеха, чтобы получить его. Если вы опустите эту функцию обратного вызова, клиент проигнорирует исключение, как будто ничего не произошло.
Например:
proxy.hello("world", function(result) {
console.log(result);
}, function(name, err) {
console.error(err);
});
Tcp-сервер и клиент используются так же, как Http-сервер и клиент.
Чтобы создать Tcp-сервер:
var server = hprose.Server.create("tcp://0.0.0.0:4321");
Чтобы создать Tcp-клиент:
var client = hprose.Client.create('tcp://127.0.0.1:4321');
Unix-сокет-сервер и клиент используются так же, как и Http-сервер и клиент.
Чтобы создать Unix-сокет-сервер:
var server = hprose.Server.create("unix:/tmp/my.sock");
Чтобы создать Unix-сокет-клиент:
var client = hprose.Client.create('unix:/tmp/my.sock');
WebSocket-сервер и клиент используются так же, как и Http-сервер и клиент.
Чтобы создать WebSocket-сервер:
var server = hprose.Server.create("ws://0.0.0.0:8080/");
Чтобы создать WebSocket-клиент:
var client = hprose.Client.create('ws://0.0.0.0:8080/');
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )