eSockd 介绍
eSockd 是 Erlang 开发的通用的非堵塞 TCP/SSL 套接字服务器。
主要特性:
性能表现:
在 8 核处理器、32G内存的 ubuntu/14.04 服务器上测试结果如下:
250K concurrent connections, 50K messages/sec, 40Mbps In/Out consumed 5G memory, 20% cpu/core
一个简单的 Echo 服务器:
-module(echo_server). -export([start_link/1]). start_link(SockArgs) -> {ok, spawn_link(?MODULE, init, [SockArgs])}. init(SockArgs = {Transport, _Sock, _SockFun}) -> {ok, NewSock} = esockd_connection:accept(SockArgs), loop(Transport, NewSock, state). loop(Transport, Sock, State) -> case Transport:recv(Sock, 0) of {ok, Data} -> {ok, Name} = Transport:peername(Sock), io:format("~p: ~s~n", [Name, Data]), Transport:send(Sock, Data), loop(Transport, Sock, State); {error, Reason} -> io:format("tcp ~s~n", [Reason]), {stop, Reason} end.
eSockd 官网
https://github.com/emqtt/esockd
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。