目前用.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服务器端?