如何使用Go运行时在App Engine上的实例之间传递套接字?

时间:2015-12-16 15:40:11

标签: google-app-engine go

Python运行时允许pickling the connection。是否有类似的方法使用经典App Engine上的Go运行时与google.golang.org/appengine/socket共享套接字?

1 个答案:

答案 0 :(得分:0)

Go API中没有公开描述符:https://github.com/golang/appengine/blob/master/socket/socket_classic.go#L152

type Conn struct {
    ctx    context.Context
    desc   string
    offset int64

    prot          pb.CreateSocketRequest_SocketProtocol
    local, remote *pb.AddressPort

    readDeadline, writeDeadline time.Time // optional
}

desc是另一方需要重建套接字的方法。

应该可以在GitHub上分叉这个库,更改conn结构以显示所需的desc属性,然后将导入更改为github.com/YOURUSERNAME/appengine/socket而不是appengine/socket

这是一项很多工作,所以如果你能想出一个不同的方法来解决这个问题,你可能会更好。不过应该是可能的。