public async Task <ToAppResponse> AppRoomRequest(AppRoomRequest request) { ToAppResponse commonResponse; //验证是否是本人ID long uid = UserConnManager.GetUidByConn(Context.ConnectionId); if (request.Id != uid) { return(new ToAppResponse(null, ResponseStatus.Error, null)); } var busClient = _bus.CreateRequestClient <AppRoomRequest>(new Uri($"{Configuration["Rabbitmq:Uri"]}{request.GameRoomKey}"), TimeSpan.FromSeconds(5)); try { var busResponse = await busClient.GetResponseExt <AppRoomRequest, ToAppResponse>(request); commonResponse = busResponse?.Message; } catch (Exception) { return(new ToAppResponse(null, ResponseStatus.BusError, null)); } return(commonResponse); }
public CommandService(IHubContext <AppHub> appHubContext, UserConnManager userConnManager, IMapper mapper) { _appHubContext = appHubContext; _userConnManager = userConnManager; _mapper = mapper; }
public AppHub(//IRequestClient<AppRoomRequest> requestClient, ICommonService commonService, UserConnManager userConnManager, IRpcCaller <AppHub> rpcCaller, IBusControl bus, IConfiguration configuration) { //_requestClient = requestClient; _commonService = commonService; _userConnManager = userConnManager; _rpcCaller = rpcCaller; _bus = bus; Configuration = configuration; }
public Task OnGameRoomRequest(ConsumeContext <GameServerRequest> context) { GameServerRequest serverReq = context.Message; string conn = UserConnManager.GetConnByUid(serverReq.Id); if (conn == null) { return(Task.CompletedTask); } ToAppRoomRequest req = _mapper.Map <ToAppRoomRequest>(serverReq); return(_appHubContext.Clients.Clients(conn).SendAsync("ToAppRoomRequest", req)); }
public Task OnServerRequest(ConsumeContext <ServerRequest> context) { ServerRequest serverReq = context.Message; string conn = UserConnManager.GetConnByUid(serverReq.Id); if (conn == null) { return(Task.CompletedTask); } ToAppRequest req = _mapper.Map <ToAppRequest>(context.Message); return(_appHubContext.Clients.Clients(conn).SendAsync("ToAppRequest", req)); //var response = await _rpcCaller.RequestCallAsync(conn, "ToAppRequest", JsonConvert.SerializeObject(req), req.MessageId); //await context.RespondAsync<BodyResponse<NullBody>>(response); }
public WrappedResponse <NullBody> LoginRequest(LoginRequest request) { //验证token是否有效 //如果有效将创建uid和玩家对应的关系 var result = _commonService.TokenValidation(request.Token); if (!result.Key) { return(new WrappedResponse <NullBody>(ResponseStatus.LoginError, new List <string>() { "Token error relogin" })); } UserConnManager.OnLogined(result.Value, Context.ConnectionId); return(new WrappedResponse <NullBody>(ResponseStatus.Success, null)); }
private void DoWork(object state) { _busControl.Publish(new HostInfoMqEvent(_configration["WSHost"], UserConnManager.GetUserCount())); }
public HostedService(IBusControl busControl, IConfiguration configration, UserConnManager connManager) { _busControl = busControl; _configration = configration; _connManager = connManager; }
public override async Task OnDisconnectedAsync(Exception exception) { await base.OnDisconnectedAsync(exception); UserConnManager.OnDisconnected(Context.ConnectionId); }