Реализация RPC на NodeJS с использованием Koa, в качестве примера используется веб-чат.
Поддерживает все браузеры PC и мобильные устройства. Поддерживает внутренние webview всех приложений. Обеспечивает автоматическое восстановление соединения. Осуществляет управление пульсацией. Поддерживает двухнаправленный RPC и одностороннюю передачу данных. Поддерживает корутинные функции. Приглашаем использовать и предоставлять отчеты о багах. Группа для технического общения QQ: 339711102 Адрес проекта: https://git.oschina.net/feimat/qiyi
Инструкция по использованию:
git clone https://git.oschina.net/feimat/qiyi.git
cd qiyi/
npm install
Затем выполните команду node index.js
Доступ к веб-странице осуществляется по адресу http://localhost:3001/
Отправка запроса RPC (в этом примере показана отправка клиентом, отправка сервером см. пример):
var rpc_client = new rpcClient('http://' + host);
var data = 'hello';
rpc_client.emit('chat', data, {
success: function(response) {
console.log(response);
},
timeout_time: 4000,
timeout_cb: function() {},
error: function() {}
});
```Прием запроса RPC (в этом примере показана прием на стороне сервера, прием на стороне клиента см. пример):
```javascript
// next: продолжение работы Koa, личное мнение — нет необходимости его выносить
// ctx: контекст информации о сокете противоположной стороны
// message: полученное сообщение
// cb: обратный вызов функции cb(data) представляет собой возврат данных отправителю
app.io.route('chat', function*(next, ctx, message, cb) {
cb("сервер получил " + message + " и начал отправку другим пользователям");
var send_suc_num = 0; // количество успешных получателей сообщения
for (var socket in all_sockets) {
// Отправка RPC сервером клиенту
app.emit(socket, 'chat', message, {
"success": function(response) {
console.log("количество успешных получателей: " + send_suc_num);
},
"timeout_time": 4000,
"timeout_cb": function() {},
"error": function() {}
});
}
});
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )