a golang web+rpc framework
框架提供关于Http服务器端最精简逻辑实现,理论上可以兼容大部分其他框架中间件(需要小量修改)
服务器目录树
App
│
├─module 应用模块目录
│ ├─web 模块目录
│ │ ├─static 静态资源目录
│ │ │ ├─uploads 上传根目录
│ │ │ ├─lib 资源库文件目录(常用作前端框架库)
│ │ │ └─src 资源文件
│ │ │ ├─js 资源Js文件目录
│ │ │ ├─img 资源图片文件目录
│ │ │ └─css 资源Css文件
│ │ ├─model 模型目录
│ │ ├─template 视图文件目录
│ │ ├─data 数据目录
│ │ ├─model 模型目录
│ │ └─controller.go 控制器
│ │
│ ├─base 模块目录
│ │
│ └─... 扩展的可装卸功能模块或插件
│
├─static 静态资源目录
│ ├─uploads 上传根目录
│ ├─lib 资源库文件目录(常用作前端框架库)
│ └─src 资源文件
│ ├─js 资源Js文件目录
│ ├─img 资源图片文件目录
│ └─css 资源Css文件
├─template 视图文件目录
├─deploy 部署文件目录
│
├─main.go 主文件
└─main.ini 配置文件
package main
import (
"fmt"
"github.com/volts-dev/volts/server"
)
type (
ctrls struct {
}
)
func (self ctrls) hello_world(hd *server.THandler) {
hd.RespondString("Hello volts.dev World!")
}
func main() {
srv := server.NewServer("name")
srv.Url("Get","/hello", ctrls.hello_world)
srv.Url("Get","/hello2", func(c *web.THandler) {
c.RespondString("Hello, World")
return
})
srv.Url("Get","/hello3", func(c *server.THandler) {
c.RenderTemplate("hello_world.html", map[string]interface{}{"static": "youpath"})
fmt.Println("b", c.Route.FilePath)
return
})
srv.Listen(":8080")
}
Dev GridControl (1)、gridView.AddNewRow() (2)、实现 gridView_InitNewRow 事件 注:使用泛型集合绑定数据源,在GridView中实现自动添加行时,AddNewRow()方法不起效。在获取数据行时, GetDataRow()方法无法获取数据,如果使用gridcontrol用于只呈现数据可以使用泛型集合作为数据源,如果涉及到增、删、改建议使
dev TreeList 获取可视区域节点方法 /// <summary> /// 获取可视区域节点 /// </summary> /// <param name="treeList">TreeList</param> /// <param name="conditonHanlder">条件委托</param> //
dev TreeList 常用属性 1:父子节点联动 .OptionsBehavior.AllowRecursiveNodeChecking = true; 2:是否显示Checkbox .OptionsView.ShowCheckBoxes = true; 3:隐藏列 treeList1.Columns["MenuUrl"].Visible = false; 4:数据绑定 treePDA.Nod
dev TreeList 节点联动 1:正确方法 只需要设置属性即可 treeList1.OptionsBehavior.AllowRecursiveNodeChecking = true; 2:编程实现方法: //1、选择某一节点时,该节点的子节点全部选择 //2、取消某一节点时,该节点的子节点全部取消选择 //3、某节点的子节点全部选择时,该节点选择
随着分布式技术和微服务思想流行,技术公司逐步将服务拆分为独立运行的小模块,提高系统整体的健壮性,加快特性的演进速度。微服务通过定义完善的接口进行交互,解耦系统、敏捷迭代、方便服务治理。RPC是目前微服务最广泛的通信方式。然而,众多团队各自研发具备服务治理功能的RPC通信框架,一方面增加开发成本,消耗人力重复造轮子;另一方面不同序列化协议的RPC服务,无法互相通信,影响可用性。因此,通用的RPC通信
对服务开发者, MTransport 屏蔽了底层网络通信细节,从而更专注于业务自身逻辑实现。支持不同语言版本的代码实现, 保持通信协议的一致性,支持服务注册、服务发现、异步通信、负载均衡等丰富的服务治理功能。
主要内容:1.RPC流水线工程,2.RPC 技术选型,3.如何设计 RPC1.RPC流水线工程 ① Client以本地调用的方式调用服务 ② Client Stub接收到调用后,把服务调用相关信息组装成需要网络传输的消息体,并找到服务地址(host:port),对消息进行编码后交给Connector进行发送 ③ Connector通过网络通道发送消息给Acceptor ④ Acceptor接收到消息后交给Server Stub ⑤ Server Stub对消息进行解码,
随着分布式技术和微服务思想流行,技术公司逐步将服务拆分为独立运行的小模块,提高系统整体的健壮性,加快特性的演进速度。微服务通过定义完善的接口进行交互,解耦系统、敏捷迭代、方便服务治理。RPC是目前微服务最广泛的通信方式。然而,众多团队各自研发具备服务治理功能的RPC通信框架,一方面增加开发成本,消耗人力重复造轮子;另一方面不同序列化协议的RPC服务,无法互相通信,影响可用性。因此,通用的RPC通信
Uragano 旨在提供一个搭建和使用简单的高性能 RPC 框架。Uragano 是基于 netstandard2.0 开发的。Uragano 默认采用 DotNetty 实现远程通信,使用 MessagePack 进行编解码。
Flex提供RPC服务以向客户端提供服务器端数据。 Flex为服务器端数据提供了相当大的控制。 使用Flex RPC服务,我们可以定义要在服务器端执行的用户操作。 Flex RPC Sservices可以与任何服务器端技术集成。 其中一个Flex RPC服务提供内置支持,可以通过线路传输压缩二进制数据,速度非常快。 Flex提供以下三种类型的RPC服务 S.No RPC服务和描述 1 HttpSe
基于GWT的应用程序通常由客户端模块和服务器端模块组成。 客户端代码在浏览器中运行,服务器端代码在Web服务器中运行。 客户端代码必须在网络上发出HTTP请求才能访问服务器端数据。 RPC,远程过程调用是GWT使用的机制,其中客户端代码可以直接执行服务器端方法。 GWT RPC是基于servlet的。 GWT RPC是异步的,客户端在通信期间从不被阻止。 使用GWT RPC Java对象可以直接在
RPC文档托管在这里: https://tendermint.com/rpc/ 若要更新文档,可以在 rpc/core 目录 编辑相关的 godoc 注释。