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 }
/// <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(); } }
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 }
/// <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 }
/// <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(); } }
/// <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); }