NetworkSocket

by xljiulang

xljiulang /NetworkSocket

NetworkSocket是一个以中间件(middleware)扩展通讯协议,以插件(plug)扩展服务器功能的支持SSL安全传输的通讯框架;目前支持http、websocket、fast、flex策...

429 Stars 227 Forks Last release: over 2 years ago (V1.7.3) 562 Commits 14 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

下载当前版本(Download the latest version)

程序包管理器控制台:
PM>

Install-Package NetworkSocket
服务端代码
public class HomeController : HttpController
{
    [HttpGet]
    public UserInfo[] GetUsers(string name)
    {
        return new UserInfo[0];
    }

[HttpGet]
public async Task<string> AboutAsync(string name)
{
    await Task.Delay(TimeSpan.FromSeconds(1));
    return "Http";
}

}

public class FastService : FastApiService { [Api] public UserInfo[] UserInfo(string name) { return new UserInfo[0]; }

[Api]
public async Task<string> AboutAsync(string name)
{
    await Task.Delay(TimeSpan.FromSeconds(1));
    return "Fast";
}

}

public class JsonWebSocketService : JsonWebSocketApiService { [Api] public UserInfo[] GetUsers(string name) { return new UserInfo[0]; }

[Api]
public async Task<string> AboutAsync(string name)
{
    await Task.Delay(TimeSpan.FromSeconds(1));
    return "WebSocket";
}

}

var listener = new TcpListener(); listener.Use(); listener.Use(); listener.Use();
listener.Start(1212);

客户端代码
// http js请求
$.getJSON("/Home/GetUsers",{name:"admin"},function(data){
    alert(data.length == 0)
});
$.getJSON("/Home/About",{},function(data){
    alert(data == "Http")
});

// fastClient请求 var client = new FastTcpClient(); client.Connect(IPAddress.Loopback, 1212); var users = await client.InvokeApi("GetUsers", "admin"); var about = await client.InvokeApi("About"); // about == "Fast"

// websocket js请求 var ws = new jsonWebSocket('ws://127.0.0.1:1212/); ws.invokeApi("GetUsers", ['admin'], function (data) { alert(data.length == 0) }); ws.invokeApi("About", [], function (data) { alert(data == "WebSocket") });

// websocketClient请求 var client = new JsonWebSocketClient(); await client.ConnectAsync(IPAddress.Loopback, 1212); var users = await client.InvokeApi("GetUsers", "admin"); var about = await client.InvokeApi("About"); // about == "WebSocket"

Async Void支持

FilterAttributer提供void OnXXX(ActionContext filterContext)的重写方法,当重写为

async
void OnXXX(ActionContext filterContext)之后,不影响Filter的等待流程,但是执行线程不是在异步等待执行, 而是转为同步等待执行。
欢迎入群

Q群 439800853

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.