如果没有特殊的库,我可以在App Engine上使用套接字吗?

时间:2014-10-26 13:40:00

标签: sockets google-app-engine go

我对GAE documentations感到困惑。它说App Engine supports sockets without requiring you to import any special App Engine libraries or add any special App Engine code。但它似乎有误导性,正如它上面所说App Engine supports outbound sockets through the appengine/socket package.

我想使用标准网络包连接到IMAP服务器。这可能还是我坚持使用GAE套接字API?

https://cloud.google.com/appengine/docs/go/sockets/

2 个答案:

答案 0 :(得分:2)

不通过appengine / socket api就无法打开出站套接字。这是因为它通过RPC和appengine.Context来完成。但是,您仍然可以使用链接的IMAP库,因为它提供了使用给定的net.Conn创建客户端的功能。您可以从appengine / socket获取net.Conn并将其传递给NewClient来开展业务。它在python和java上运行的原因是因为它们都使用线程本地内存来隐式地管理请求状态,而go运行时则没有。

答案 1 :(得分:1)

由于您将启动出站连接,因此无法阻止您连接到Imap服务器。对于java,标准的java邮件包开箱即用。 仅适用于付费应用,即您需要启用结算功能。