<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Server on I'm OWenT</title><link>//owent.net/tags/server.html</link><description>Recent content in Server on I'm OWenT</description><generator>Hugo</generator><language>zh-cn</language><copyright>&lt;a rel="license" href="https://github.com/owent/blog-hugo/blob/master/LICENSE.md"&gt;&lt;img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png" /&gt;&lt;/a&gt;</copyright><lastBuildDate>Wed, 15 Feb 2017 23:27:51 +0000</lastBuildDate><atom:link href="//owent.net/tags/server/index.xml" rel="self" type="application/rss+xml"/><item><title>atapp的c binding和c#适配</title><link>//owent.net/2017/1367.html</link><pubDate>Wed, 15 Feb 2017 23:27:51 +0000</pubDate><guid>//owent.net/2017/1367.html</guid><description>&lt;!-- toc --&gt;&#13;&#10;&lt;p&gt;这两天在做服务器框架的C的接口导出和C#的接入。之所以要做这么个东西是因为之前的服务器框架（&lt;a href="https://github.com/atframework/atsf4g-co"&gt;atsf4g-co&lt;/a&gt;）已经完成了通信层面和基本设计模式的细节部分，而且基本算是最大化性能了吧。但是现在的项目的战斗引擎是从以前Unity游戏上抽象而来的，全部由C#编写。再加上最近再考虑接入实时战斗，这样就不能像之前一样用一个简单的通信方式了，必须使用一个高效并且实时性更高通信机制。需要能够处理好比较高的集中式的组播和容灾的通信方式。于是就有了把之前的C++的框架抽离出API来驱动逻辑的想法。这样也比较容易地兼顾开发成本和性能之间地权衡。&lt;/p&gt;&#10;&lt;h2 id="c-binding"&gt;C Binding&lt;/h2&gt;&#10;&lt;p&gt;那么抽离出框架地目的是抽象出应用底层，这个刚好是&lt;a href="https://github.com/atframework/libatapp"&gt;atapp&lt;/a&gt;做的事，而且&lt;a href="https://github.com/atframework/libatapp"&gt;atapp&lt;/a&gt;的层面对外暴露的接口数量也比较少，使用比较简单，所以索性就直接对它下手了。&lt;/p&gt;&#10;&lt;p&gt;让后第一步是把&lt;a href="https://github.com/atframework/libatapp"&gt;atapp&lt;/a&gt;需要使用的基本接口抽离出纯C的导出API。之所以要导出成纯C是因为，不同系统环境和编译器环境在C++层符号规则、入栈出栈顺序、内存布局、对其规则等等都不一样。这种情况要做跨平台就很是困难，然而这些在纯C的ISO里都是有明确规范的。所以最简单的方式就是导出到纯C，然后其他语言导入接口。这里的其他语言目前就只有C#，但是纯C接口的话如果想导出到lua或者其他语言的接口也不困难。&lt;/p&gt;&#10;&lt;p&gt;这里导出的时候有一点点小细节，那就是在Linux上的c api是默认导出的，但是在Windows里是默认不导出的，然后再加上不同编译器的导出用法不一样，所以第一步当然是统一导出标记。最终就是下面这一段&lt;/p&gt;</description></item><item><title>从Javascript到Typescript到Node.js</title><link>//owent.net/2013/851.html</link><pubDate>Wed, 10 Jul 2013 20:19:39 +0000</pubDate><guid>//owent.net/2013/851.html</guid><description>&lt;p&gt;最近看了点typescript的东西，加上以前看过的一点点Node.js，所以就想把他们系统地整理一下。&lt;/p&gt;&#10;&lt;h2 id="javascript"&gt;Javascript&lt;/h2&gt;&#10;&lt;p&gt;这玩意搞过Web开发的应该都知道吧，Javascript的语法我就不废话了，挺简单的。这里总结几个Javascript的核心机制部分吧。&lt;/p&gt;</description></item></channel></rss>