惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
G
Google Developers Blog
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
小众软件
小众软件
月光博客
月光博客
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
P
Proofpoint News Feed
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
The Cloudflare Blog
博客园_首页
美团技术团队
大猫的无限游戏
大猫的无限游戏
B
Blog
IT之家
IT之家
Jina AI
Jina AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - InterMa

离开了。。。 安装ubuntu6.06的一个应注意之处 - InterMa - 博客园 今天和同学们包饺子啦~ - InterMa - 博客园 。。。。。。 关于ODR和Template 王国维 之 三境界 Castle ActiveRecord中ntext类型的映射 给俱乐部中的朋友们问个好~ :-) 函数调用与堆栈清理 使用Castle ActiveRecord的几点小经验 拳脚小功夫,容人大丈夫 No Touch Required 一些页面配色的资源【存档自用】 Vim7下配置C/C++的Omni complete Vim7下配置Python的Omni complete Richard Stallman和自由软件运动 扯2,3事 写了一个Google登陆风格的table 最近正在FPS。。。
第3方client连接talk.google.com的一些注意之处
InterMa · 2006-12-07 · via 博客园 - InterMa

最近闲着没事,想用python写一个CUI的XMPP客户端,Server就用google的talk.google.com了,在google的Open Communications上获得以下信息:
The service is hosted at talk.google.com on port 5222
TLS is required
The only supported authentication mechanism is SASL PLAIN

但是经过测试,dump了一下XMPP Stream,发觉实际的情况没这么简单,dump的具体过程就不废话了(用gaim来dump,:-)),得出的具体结论如下:
【1】talk.google.com:5222:   
这个地址应该主要是给gtalk用的,因为首先这个地址不支持SASL:PLAIN认证,只支持google自己的X-GOOGLE-TOKEN认证(关于X-GOOGLE-TOKEN认证,详见这里)。其次就是无法以SSL(TLS)方式连接(错误提示:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol,这里已经搞清楚了因为python没有内置StartTLS功能的模块,:-<)。因此不支持TLS handshake(StartTLS)的第3方客户端建议不要连这个地址。
【2】talk.google.com:5223:
和上个地址正好相反,这个地址只支持以SSL(TLS)方式进行连接。以SSL(TLS)方式连接之后,发现它支持SASL:PLAIN和X-GOOGLE-TOKEN认证,因此我们自己写的第3方客户端连这个地址就可以了。

2006年12月7日重要更新:
今天在psi-im的wiki上获得了一个重要信息:

In the Jabber world, these two terms are used as following:

  1. SSL support: communication using SSL or TLS protocol, on port 5223, without handshaking - the stream is encrypted from the very beginning.
  2. TLS support: communication using SSL or TLS protocol, on port 5222, with handshaking (also known as StartTLS) - the encryption type is first negotiated in plain text and afterwards the stream is encrypted.

这下就没什么可说得了,上边说得很清楚了。
5222口在TLS handshake之后,就支持PLAIN验证了(感谢linux@bmy,同时打算和他搬到这里,用C开发了),错怪google了,:-)

此文只保证现状如此(同时本人分析过程仅供参考),不保证一定正确且对未来的变化没有任何担保,:-P