小编AAA*_*AAA的帖子

打开 MySqlConnection 时没有抛出异常?

我刚开始使用异步和任务,我的代码已停止处理。当我有一个传入的网络数据包并且我尝试与数据包处理程序内的数据库进行通信时,就会发生这种情况。

public class ClientConnectedPacket : IClientPacket
{
    private readonly EntityFactory _entityFactory;

    public ClientConnectedPacket(EntityFactory entityFactory)
    {
        _entityFactory= entityFactory;
    }

    public async Task Handle(NetworkClient client, ClientPacketReader reader)
    {
        client.Entity = await _entityFactory.CreateInstanceAsync( reader.GetValueByKey("unique_device_id"));

        // this Console.WriteLine never gets reached
        Console.WriteLine($"Client [{reader.GetValueByKey("unique_device_id")}] has connected");
    }
}
Run Code Online (Sandbox Code Playgroud)

从异步任务中调用 Handle 方法

if (_packetRepository.TryGetPacketByName(packetName, out var packet))
{
    await packet.Handle(this, new ClientPacketReader(packetName, packetData));
}
else
{
    Console.WriteLine("Unknown packet: " + packetName);
}
Run Code Online (Sandbox Code Playgroud)

这是我认为导致问题的方法

public async Task<Entity> CreateInstanceAsync(string uniqueId)
{
    await using (var dbConnection = _databaseProvider.GetConnection())
    { …
Run Code Online (Sandbox Code Playgroud)

c# mysql

14
推荐指数
1
解决办法
266
查看次数

Laravel:没有拿起 __invoke 方法?

尝试使用可调用控制器,但似乎找不到 __invoke 方法?

Invalid route action: [App\Http\Controllers\App\Http\Controllers\MainController].
Run Code Online (Sandbox Code Playgroud)

它似乎在以下时间返回 true:

if (! method_exists($action, '__invoke')) {
    throw new UnexpectedValueException("Invalid route action: [{$action}].");
}
Run Code Online (Sandbox Code Playgroud)

路线:

<?php

Route::get('/', \App\Http\Controllers\MainController::class);
Run Code Online (Sandbox Code Playgroud)

主控制器:

<?php

namespace App\Http\Controllers;

class MainController extends Controller
{
    public function __invoke()
    {
        dd('main');
    }
}
Run Code Online (Sandbox Code Playgroud)

php laravel

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

laravel ×1

mysql ×1

php ×1