加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Go实战--golang生成uuid(The way to go)

发布时间:2020-12-16 18:11:22 所属栏目:大数据 来源:网络整理
导读:生命不止,继续 go go go !!! 在做server开发的时候,难免用到uuid,这里与大家分享一下golang中如何生成uuid。 什么是uuid? uuid是Universally Unique Identifier的缩写,即通用唯一识别码。 uuid的目的是让分布式系统中的所有元素,都能有唯一的辨识资

生命不止,继续 go go go !!!

在做server开发的时候,难免用到uuid,这里与大家分享一下golang中如何生成uuid。

什么是uuid?

uuid是Universally Unique Identifier的缩写,即通用唯一识别码。

uuid的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 uuid。

A universally unique identifier (UUID) is a 128-bit number used to identify information in computer systems.

例如java中生成uuid:

package com.mytest;
import java.util.UUID;
public class UTest {
    public static void main(String[] args) {
        UUID uuid = UUID.randomUUID();
        System.out.println(uuid);
}}

c++中生成uuid:

#pragma comment(lib,"rpcrt4.lib")
#include <windows.h>
#include <iostream>

using namespace std;

int main()
{
    UUID uuid;
    UuidCreate(&uuid);
    char *str;
    UuidToStringA(&uuid,(RPC_CSTR*)&str);
    cout<<str<<endl;
    RpcStringFreeA((RPC_CSTR*)&str);
    return 0;
}

github.com/satori/go.uuid

目前,golang中的uuid还没有纳入标准库,我们使用github上的开源库:

go get -u github.com/satori/go.uuid

使用:

package main

import (
    "fmt"
    "github.com/satori/go.uuid"
)

func main() {
    // 创建
    u1 := uuid.NewV4()
    fmt.Printf("UUIDv4: %sn",u1)

    // 解析
    u2,err := uuid.FromString("f5394eef-e576-4709-9e4b-a7c231bd34a4")
    if err != nil {
        fmt.Printf("Something gone wrong: %s",err)
        return
    }
    fmt.Printf("Successfully parsed: %s",u2)
}

uuid在websocket中使用

这里就是一个简单的使用而已,在websocket中为每一个连接的客户端分配一个uuid。

golang中可以使用github.com/gorilla/websocket为我们提供的websocket开发包。

声明一个客户端结构体:

type Client struct {
    id     string
    socket *websocket.Conn
    send   chan []byte
}

使用:

client := &Client{id: uuid.NewV4().String(),socket: conn,send: make(chan []byte)}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读