Unity3d Apache Thrift Server


I am using Apache Thrift to have Unity act as a Thrift Server. When I try to do that, once it calls the “server.Serve()” it locks up Unity.

Here is the code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Thrift.Server;
using Thrift.Transport;
using System;

public class CSharpServer : MonoBehaviour

    // Use this for initialization
    void Start()
        Application.runInBackground = true;

            CSharpTutorial.CalculatorHandler handler = new CSharpTutorial.CalculatorHandler();
            Calculator.Processor processor = new Calculator.Processor(handler);
            TServerTransport serverTransport = new TServerSocket(9090);
            TServer server = new TSimpleServer(processor, serverTransport);

            // Use this for a multithreaded server
            //TServer server = new TThreadPoolServer(processor, serverTransport);

            Debug.Log("Starting the server...");
            server.Serve(); // <-- This is the line that causes the lockup.
        catch (Exception x)


Having Unity work as a Client works just fine. It can call a Server written in any language with no issues. All the examples I can find only show Unity as a Client and not as a server.

The purpose of this is due to that I need two way communication using Thrift. Therefore the client can call the server and the server can call the client.

I can just have the client Poll the Server every x seconds to get see if there are any messages but I’m trying this method first.

I am trying this on both Unity 5.6.1 and Unity 2017.1
Using Thrift 0.10.0
Windows Stand Alone Build

I have already Googled “unity3d thrift server” and went through the first 20 pages and all their links with no result ( the ones that do really talk about it are set for Unity as a client )

Thanks for any and all help.



, did you find a solution for this