Ejemplo n.º 1
0
    private void TestFoobar()
    {
        Util.Log("client request foobar");

        SpObject foobar_request = new SpObject();

        foobar_request.Insert("what", "foo");
        SpStream req = client.Request("foobar", foobar_request, 1);

        Util.Assert(req.Length == 11);
        Util.Log("request foobar size = " + req.Length);

        req.Position = 0;
        SpRpcResult dispatch_result = server.Dispatch(req);

        Util.Assert(dispatch_result.Arg["what"].AsString().Equals("foo"));
        Util.DumpObject(dispatch_result.Arg);

        Util.Log("server response");

        SpObject foobar_response = new SpObject();

        foobar_response.Insert("ok", true);
        SpStream resp = server.Response(dispatch_result.Session, foobar_response);

        Util.Assert(resp.Length == 7);
        Util.Log("response package size = " + resp.Length);

        Util.Log("client dispatch");

        resp.Position   = 0;
        dispatch_result = client.Dispatch(resp);
        Util.Assert(dispatch_result.Arg["ok"].AsBoolean() == true);
        Util.DumpObject(dispatch_result.Arg);
    }
Ejemplo n.º 2
0
        public SpStream Pack(string proto, int session, SpObject args)
        {
            _stream.Reset();

            if (proto != "heartbeat")
            {
                SkynetLogger.Info(Channel.NetDevice, "Send Request : " + proto + ", session : " + session);;
            }

            _rpc.Request(proto, args, session, _stream);
            return(_stream);
        }
Ejemplo n.º 3
0
        public static SpStream Pack(string proto, int session, SpObject args)
        {
            _stream.Reset();

            SkynetLogger.Info(Channel.Udp, "Send Request : " + proto + ", session : " + session);

            _stream.Write(_session);
            _stream.Write(_secret);

            _rpc.Request(proto, args, session, _stream);

            return(_stream);
        }
Ejemplo n.º 4
0
        public void SendRequest(string protocolName, SpObject spObject)
        {
            mSession++;
            SpStream spStream = new SpStream();

            spStream.Write((short)0);

            mRpc.Request(protocolName, spObject, mSession, spStream);
            int len = spStream.Length - 2;

            spStream.Buffer[0] = (byte)((len >> 8) & 0xff);
            spStream.Buffer[1] = (byte)(len & 0xff);

            mSocket.BeginSend(spStream.Buffer, 0, spStream.Length, SocketFlags.None, new AsyncCallback(SendRequestCallback), this);
        }
Ejemplo n.º 5
0
    private void Send(string proto, SpObject args)
    {
        mSendStream.Reset();
        mSession++;

        Util.Log("Send Request : " + proto + ", session : " + mSession);
        if (args != null)
        {
            Util.DumpObject(args);
        }

        mSendStream.Write((short)0);
        mRpc.Request(proto, args, mSession, mSendStream);
        int len = mSendStream.Length - 2;

        mSendStream.Buffer[0] = (byte)((len >> 8) & 0xff);
        mSendStream.Buffer[1] = (byte)(len & 0xff);
        mSocket.Send(mSendStream.Buffer, mSendStream.Length, SocketFlags.None);
    }
Ejemplo n.º 6
0
        public void Send(string proto, int session, SpObject args)
        {
            _stream.Reset();

            if (proto != "heartbeat")
            {
                SkynetLogger.Info(Channel.NetDevice, "Send Request : " + proto + ", session : " + session);
            }

            _stream.Write((short)0);
            _rpc.Request(proto, args, session, _stream);
            var len = _stream.Length - 2;

            _stream.Buffer[0] = (byte)((len >> 8) & 0xff);
            _stream.Buffer[1] = (byte)(len & 0xff);

//			var mBuffer = new byte[2];
//			mBuffer[0] = (byte)((len >> 8) & 0xff);
//			mBuffer[1] = (byte)(len & 0xff);
//
//			SkynetLogger.Error(Channel.NetDevice,"xxxxxxxx  " + len + "hex:" + Utils.Crypt.Crypt.HexEncode(mBuffer));

            _transporter.Send(_stream.Buffer, _stream.Length);
        }