打造一款属于自己的go语言socket框架5效果展示

框架代码:

希望给个星星支持一下 microSocket

服务端逻辑:

package main

import (
    "fmt"
    "log"
    msf "jd-test/microSocket"
    "strconv"
)

var ser = msf.NewMsf()

//框架逻辑
//---------------------------------------------------------------------
type Test struct {
}

func (this Test) Default() {
    fmt.Println("is default")
}

func (this Test)BeforeRequest(data map[string]string)bool{
    log.Println("before")
    return true
}

func (this Test)AfterRequest(data map[string]string){
    log.Println("after")
}

func (this Test) Hello(data map[string]string){
    fd, _ := strconv.Atoi(data["fd"])
    log.Println("收到消息了")
    ser.SessionMaster.WriteByid(uint32(fd), "Hello")
}
//---------------------------------------------------------------------

func main() {
    log.SetFlags(log.Lshortfile | log.LstdFlags | log.Llongfile)
    ser.EventPool.Register("test", &Test{})
    ser.Listening(":8565")
}

客户端逻辑:

package main

import (
    "fmt"
    "jd-test/microSocket"
    "jd-test/microSocket/util"
    "net"
)



func main() {
    conn, err := net.Dial("tcp", "127.0.0.1:8565")
    if err != nil{
        return
    }
    defer conn.Close()

    data := make(map[string]string)
    data["module"] = "test"
    data["action"] = "Hello"
    data["name"] = "jd"
    //把map转化为string
    a := []byte(util.Map2String(data))
    //把string打包
    b := microSocket.Enpack(a)
    //发送数据
    conn.Write(b)

    res := make([]byte, 20)
    conn.Read(res)
    fmt.Println(res)
}

结论:

  1. 服务端只需要创建一个模块类实现相应的逻辑方法,然后再调用相应的方法注册一下,就可以实现一个很简单socket服务器
  2. 客户端也只需要连接,创建一个map,里面写明模块名,和接口名,最好打成一个包即可。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,062评论 3 119
  • 想和你说明白。 一,我和张凯不是因为你最后会怎么样。一开始因为他家人的原因。当中也有他的因素。沟通没结果。他家人因...
    勤奋的Q阅读 1,265评论 0 0
  • 销售工作中非常考验一个人的综合能力,销售人的业绩也更是能力的体现。一位女销售自曝销售行业的不易,为了提升业绩也是百...
    原中劲法120阅读 3,462评论 0 0
  • 人生需要一步一步来,我有点急躁一下子想得到很多。所以才会不开心,而现在我明白了务实才是最重要的事情。想想别人在我这...
    桑啼阅读 2,778评论 0 0

友情链接更多精彩内容