Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

high performance network (tcp socket) library for lua, based onhttps://github.com/IronsDu/brynet and lua coroutine.

License

NotificationsYou must be signed in to change notification settings

IronsDu/Joynet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Windows :Build status Linux :Build Status

介绍

high performance network library for lua, based onhttps://github.com/IronsDu/accumulation-dev andlua coroutine.Joynet 的网络底层使用多线程,但Lua (层面)是运行在单线程上。借助协程提供同步形式的API。

src 目录是此项目源代码

libs 目录为基于此Lua协程网络库开发的一些库(譬如RedisMysqlWebSocketPostgresHTTP Client)

构建

使用git clone迁出项目并进入项目根目录,并依次使用git submodule initgit submodule update 下载依赖项.

然后使用cmakevcpkg安装brynet进行构建Joynet动态库

使用

examples 目录包含测试代码。譬如我们要在Windows下运行PingPong测试:

先在项目根目录执行lua examples\PingpongServer.lua,然后执行lua examples\PingpongClient.lua 即可

使用此库也很简单,在你的Lua代码里使用require("Joynet")加载网络库,然后使用CoreDD对象的相关接口即可(具体参考examples目录的各示例代码)

当然,你必须先安装有Lua环境

关于协程

协程是轻量级线程,所以多线程有的问题它也有,只是影响程度不同。在协程中使用同步API会阻塞当前协程,所以当你的应用程序只有一个协程从外部收取网络消息时,且在消息处理中使用同步API操作Redis或者Http的话,效率会很低。 这时有两个方案可解决:1 、再提供回调形式的异步API, 但这样会使开发概念混乱 ;2、 在前面说到的情景的消息处理中再开新协程,并在其中操作HTTP/Redis。(当然,协程的创建和切换必然有一定开销 ^-^ )

About

high performance network (tcp socket) library for lua, based onhttps://github.com/IronsDu/brynet and lua coroutine.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp