You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Ury Stankevich <ur...@gmail.com> on 2009/11/20 11:59:13 UTC

erlang, framed transport

Hi !

i have question about erlang framed transport:

i start a server:

    thrift_socket_server:start([{handler, Handler},
                                {service, queue_thrift},
                                {port, Port},
                                {framed, true},
                                {name, q_server}]).

on client side:

    {ok, Client} = thrift_client:start_link("127.0.0.1",
                                            Port,
                                            queue_thrift,
                                            [{framed, true}]
                                            ),
    {ok, Res} = thrift_client:call(Client, 'push', ["qname1", "somevalue1"]),
    io:format("push rc ~p~n", [Res]),

    {ok, Res1} = thrift_client:call(Client, 'pop', ["qname1"]),
    io:format("pop = ~p~n", [Res1]),

second call( to pop) is failed:
but i can see that server is reached (by debug print)

error is:
** exception exit: {case_clause,{error,no_binary_protocol_version}}
     in function  thrift_client:read_result/3
     in call from thrift_client:catch_function_exceptions/2
     in call from thrift_client:handle_call/3
     in call from gen_server:handle_msg/5
     in call from proc_lib:init_p/5

if i set framed to false - then all is working.

thrift interface is:

        i16 push(
                1:string name,
                2:binary data
        )
        binary pop(
                1:string name
        )