Exemple #1
0
        public void Add(int left, int right)
        {
#if ONLYWEB
            createResponse();
            try
            {
                response((left + right).toString());
            }
            finally { responseEnd(); }
#else
            returnValue <int> value = loadBalancingTcpCommandWeb.loadBalancing.add(left, right);
            if (value.Type == returnValue.type.Success)
            {
                createResponse();
                try
                {
                    response(value.Value.toString());
                }
                finally { responseEnd(); }
            }
            else
            {
                serverError500();
                Console.WriteLine("TCP Error");
            }
#endif
        }
Exemple #2
0
 /// <summary>
 /// 消息更新
 /// </summary>
 /// <param name="messages">消息列表</param>
 private void receive(returnValue <server.message> messages)
 {
     if (messages.Type == returnValue.type.Success)
     {
         if (OnMessage != null)
         {
             OnMessage(messages.Value);
         }
     }
     else
     {
         Dispose();
     }
 }
Exemple #3
0
        public int Add(int left, int right)
        {
#if ONLYWEB
            return(left + right);
#else
            returnValue <int> value = loadBalancingTcpCommandWeb.loadBalancing.add(left, right);
            if (value.Type != returnValue.type.Success)
            {
                serverError500();
                Console.WriteLine("TCP Error");
            }
            return(value.Value);
#endif
        }
Exemple #4
0
        /// <summary>
        /// 负载均衡测试web视图调用
        /// </summary>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <param name="isAsynchronous"></param>
        /// <returns></returns>
        private bool loadView(int left, int right, bool isAsynchronous)
        {
#if ONLYWEB
            if (isAsynchronous)
            {
                setAsynchronous();
                Return = left ^ right;
                callback();
            }
            else
            {
                Return = left + right;
            }
            return(true);
#else
            if (isAsynchronous)
            {
                setAsynchronous();
                loadBalancing.xor(left, right, value =>
                {
                    if (value.Type == returnValue.type.Success)
                    {
                        Return = value.Value;
                        callback();
                    }
                    else
                    {
                        serverError500();
                        Console.WriteLine("TCP Error");
                    }
                });
                return(true);
            }
            else
            {
                returnValue <int> value = loadBalancing.add(left, right);
                if (value.Type == returnValue.type.Success)
                {
                    Return = value.Value;
                    return(true);
                }
                else
                {
                    Console.WriteLine("TCP Error");
                }
            }
            return(false);
#endif
        }
Exemple #5
0
 /// <summary>
 /// 用户列表更新
 /// </summary>
 /// <param name="usersVerison">用户列表与版本信息</param>
 private void userChange(returnValue <string[]> usersVerison)
 {
     if (usersVerison.Type == returnValue.type.Success)
     {
         users = usersVerison.Value;
         if (OnUserChanged != null)
         {
             OnUserChanged(Users);
         }
     }
     else
     {
         Dispose();
     }
 }
Exemple #6
0
        /// <summary>
        /// 同步测试
        /// </summary>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static returnValue <int> add(int left, int right)
        {
            returnValue <int> value = server.add(left, right);

            if (value.Type == returnValue.type.Success)
            {
                if (left + right != value.Value)
                {
                    Console.WriteLine("add 调用错误 : " + left.toString() + " + " + right.toString() + " = " + (left + right).toString() + " <> " + value.Value.toString());
                }
            }
            else
            {
                Console.WriteLine("add 调用失败");
            }
            return(value);
        }
            /// <summary>
            /// 移除TCP调用服务端
            /// </summary>
            /// <param name="host">TCP调用服务端端口信息</param>
            /// <returns>是否移除成功</returns>
            public bool RemoveServer(host host)
            {
                keyValue <tcp.commandClient.streamCommandSocket, fastCSharp.net.waitCall <bool> > wait = getWait <bool>(false);

                if (wait.Value != null)
                {
                    try
                    {
                        fastCSharp.net.returnValue <bool> value = new returnValue <bool>();
                        wait.Key.Get(wait.Value, removeServerCommand, ref host, ref value.Value, false);
                        wait.Value.Get(out value);
                        return(value.Type == returnValue.type.Success && value.Value);
                    }
                    catch (Exception error)
                    {
                        log.Error.Add(error, null, false);
                    }
                }
                return(false);
            }
 /// <summary>
 /// TCP调用服务端验证
 /// </summary>
 /// <param name="socket">TCP调用套接字</param>
 /// <param name="data">参数序列化数据</param>
 private void verify(socket socket, ref subArray <byte> data)
 {
     fastCSharp.net.returnValue.type returnType;
     try
     {
         fastCSharp.net.tcp.timeVerifyServer.input inputParameter = default(fastCSharp.net.tcp.timeVerifyServer.input);
         if (fastCSharp.emit.dataDeSerializer.DeSerialize(ref data, ref inputParameter))
         {
             fastCSharp.net.returnValue <fastCSharp.net.tcp.timeVerifyServer.output> returnValue = new returnValue <timeVerifyServer.output> {
                 Value = new fastCSharp.net.tcp.timeVerifyServer.output {
                     Ret = timeVerify.Verify(socket, inputParameter.randomPrefix, inputParameter.md5Data, ref inputParameter.ticks)
                 }
             };
             returnValue.Value.ticks = inputParameter.ticks;
             if (returnValue.Value.Ret)
             {
                 socket.SetVerifyMethod();
             }
             returnValue.Type = net.returnValue.type.Success;
             socket.SendStream(ref socket.identity, ref returnValue, default(tcp.commandServer.commandFlags));
             return;
         }
         returnType = fastCSharp.net.returnValue.type.ServerDeSerializeError;
     }
     catch (Exception error)
     {
         returnType = fastCSharp.net.returnValue.type.ServerException;
         fastCSharp.log.Error.Add(error, null, true);
     }
     socket.SendStream(ref socket.identity, returnType);
 }