tinyfox 4.0增加socket功能

TinyFox特点

  1. 跨平台:支持windows、linux等常用操作系统;
  2. 超轻量:功能单一而明确:除了静态文件由自身处理外,其它的应用逻辑直接交给用户处理;
  3. 高性能:底层基于 libuv 开发,是完全的异步、非阻塞、事件驱动模型,上层代码也经过了高度优化;
  4. 高安全性和高稳定性:本服务器由Jexus Web Server作者开发,在很大程度上承接了JWS的高安全性和高稳定性素质;
  5. 支持WebSocket:开发者能很方便地利用本服务器提供基于WebSocket协议的各种性能优良、功能强大的交互式应用;
  6. 支持Socket:通过中间件的方式支持tcp(TinyFox 4.0才支持)

  TinyFox 4.0还不是正式版,所以在Linux DotNET大本营 还没有下载链接地址,在宇大给beta版,我进行简单的试用,感觉使用还是很方便的.下面便说怎么使用的吧!

TinyFox-v4.0-beta1 使用

  1.解压TinyFox-v4.0-beta1,目录内的内容稍微有些区别:
        
  2.新增了一个 "中间件接口文档和示例" 文件夹和TinyFoxCommon.dll的动态库
    看一下接口文件:
        
    动态库文件,就是接口文件生成的,可以自己生成,这里直接使用.
  3.新建一个动态库项目,命名为TcpMiddlewareApp,并添加TinyFoxCommon.dll引用,添加TcpMiddleware类.
    实现ITcpMiddleware接口,在Invoke函数中,添加对tcp请求和tcp的响应
using System;
using System.Text;
using System.Threading.Tasks;
using TinyFoxCommon;

namespace TcpMiddlewareApp
{
    /// <summary>
    /// tcp中间件
    /// </summary>
    public class TcpMiddleware: ITcpMiddleware
    {
        private readonly ITcpMiddleware _next;

        public TcpMiddleware(ITcpMiddleware next)
        {
            _next = next;
        }

        /// <summary>
        /// 对socket请求的获取和响应处理
        /// </summary>
        /// <param name="context">tcp上下文封装请求和响应的消息</param>
        /// <returns></returns>
        public async Task Invoke(ITcpContext context)
        {
            var buffer = new byte[8192];
            //context下的Reader现在在INetReader接口有AsyncRecv函数重载,在INetReader接口有AsyncRecv函数重载
            Task<int> request = context.Reader.AsyncRecv(buffer);  //接收消息,将消息写入到buffer中
            if (request.Result > 0)
            {
                int count = request.Result;                        //根据消息的大小,重新生成一个byte数组
                var msgBuf = new byte[count];
                Array.Copy(buffer, msgBuf, count);                 //将消息复制新的数组中
                string msg = Encoding.Default.GetString(msgBuf);   //将消息转换成字符串 (注意:接收的编码方式,真正使用的时候应该换成utf-8)
                var content = Encoding.Default.GetBytes(string.Format("hello,{0}", msg));  //注意编码方式
                await context.Writer.AsyncSend(content);
            }
        }
        
    }
}

  4.将TcpMiddlewareApp生成,并添加到我们基于owin实现的项目,进行调试

    对项目进行配置,指定启动程序为TinyFox.exe

        

    调试监控数据

        

客户端,这里是用c语言实现的

   分别可以Windows实现 和 Linux实现 ,只是将原先连接服务端ip和端口号,改为参数传递的方式
      
   socket.exe 百度云盘链接: http://pan.baidu.com/s/1i5p8UGl 密码: hypg
   
   TinyFox响应流程
         
    
秋风 2017-06-02