Exemple #1
0
        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;
 }
Exemple #3
0
 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);
        }
Exemple #6
0
        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;
 }
Exemple #9
0
        public override async Task OnDisconnectedAsync(Exception exception)
        {
            await base.OnDisconnectedAsync(exception);

            UserConnManager.OnDisconnected(Context.ConnectionId);
        }