Table Of Contents

Previous topic

マルチコアCPUを生かして並列実行する

Next topic

各種のネットワーク呼び出しプロトコルに対応させる

This Page

様々な言語からMessagePack RPCで呼び出す

MessagePack RPC のライブラリが利用できる言語からは容易に呼び出しが可能です.

以下に呼び出しの例を示します. SERVICE_HOST, SERVICE_PORT はそれぞれ,RaSCサービスが起動しているホストとポートであるとします.

Perlから呼び出す

AnyEvent::MPRPC が必要です.

#!/bin/env perl

use strict;
use warnings;
use utf8;
use AnyEvent::MPRPC;
use AnyEvent::MPRPC::Client;

my $client = AnyEvent::MPRPC::Client->new(
  host => "SERVICE_HOST",
  port => "SERVICE_PORT"
);
my $res = $client->call( 'analyze' => '解析する文字列' )->recv;
print "$res\n";

my $reqArray = [ "一つ目の文章", "二つ目の文章" ];
my $resArray = $client->call( 'analyzeArray' => [ $reqArray ] )->recv;
print join("\n", @$resArray);

Pythonから呼び出す

msgpackrpc が必要です.

# coding:utf-8

import msgpackrpc

client = msgpackrpc.Client(msgpackrpc.Address(
   "SERVICE_HOST", SERVICE_PORT))
result = client.call('analyze', "解析する文字列")
print(result)

resultArray = client.call('analyzeArray', [ "一つ目の文章", "二つ目の文章" ])
print("\n".join(resultArray))

Rubyから呼び出す

msgpack-rpc が必要です.

# -*- coding: utf-8 -*-
require 'msgpack/rpc'

client = MessagePack::RPC::Client.new('SERVICE_HOST', SERVICE_PORT)

result = client.call(:analyze, "解析する文字列")
print(result)

resultArray = client.call(:analyzeArray, [ "一つ目の文章", "二つ目の文章" ])
print(resultArray.join("\n"))