如何在webapi服务器和socket服务器之间通讯

目前用.net framework。现在有个问题,如果一个请求来自webapi,如何将这个信息转发到sockset服务器?

我搜到一个帖子,https://blog.csdn.net/weixin_42331508/article/details/106049582

浏览器请求 WebAPI的时候,设置有超时时间,比如说3秒超时。(如果3秒之内你不给我数据,我就认为没有数据返回)。
在Socket这一端呢,我向Socket发送WebAPI的请求数据。我给WebAPI的请求数据加一个编号,我当然不知道Socket啥时候给我返回数据,所以开了一个异步的线程,只要Socket有返回数据。我就把返回数据存到缓存里(以请求编号为键,缓存数据,这样就可以找到是哪一次请求的数据了,缓存默认30秒过期)。
然后WebAPI请求就在主等待返回数据,肯定不能无限期地等待下去,这里有个请求循环,每个循环 之间延迟100毫秒,最多5次循环。在每次循环中,WebAPI请求都是在缓存中找数据,根据请求编号找对应的返回数据,如果找到请求返回的数据,就直接返回。没找到就循环继续找,直到5次循环结束,还没有找到就认为找不到这条数据。
-------------

但是webapi服务器端如何通知socket端发送数据呢?就是加红的这句话?是webapi先把请求信息放到数据库中,然后socket服务器定时访问?还是有技术能直接让webapi服务器直接调用dll接口访问socket服务器端?

1.在 Web API 中接收请求,将请求内容读入到内存中。
2.创建一个 Socket 客户端连接到 Socket 服务器。
3.将请求内容写入到 Socket 客户端,发送给 Socket 服务器。
4.从 Socket 客户端读取响应并返回到 Web API 的请求者。

var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("socket_server_host", socket_server_port);

var request = ... // 取得请求内容

// 发送请求
socket.Send(Encoding.UTF8.GetBytes(request));

var response = new byte[1024];
var responseLength = socket.Receive(response);

// 将响应转换为字符串并返回
return Encoding.UTF8.GetString(response, 0, responseLength);