1

我在将我的机器人连接到 irc.twitch.tv 时遇到了一些问题。连接到 irc.ubuntu.com 没问题。

当连接到 ubuntu 时,我只发送 nick 然后发送 usr。通过 twitch,我发送 pass、nick 和 usr。
我真的很困惑为什么这根本不起作用。通常我认为 twitch 应该告诉我任何事情,但是在我的机器人告诉我没有发生特殊错误之后,根本就没有消息。所以我认为问题出在连接上,而不是因为我无法在 usr 和 nick 之前发送有效的通行证。
因为我的代码有点长,所以贴在pastebin上,希望大家能理解和分析:

http://pastebin.com/Win3CXbP

PS:  - My oauth PW should be correct it is not the string in the sample code.
     - I have the pw/usr/nick in the right order, nick/usr is wrong in code.
     - I want to say again, that I don't get any message from twitch or any errors.

PPS:  - I just tried using wireshark and when filtering for "irc" I got some data 
        with irc.ubuntu.com, but none with irc.twitch.tv. 
        Is the twitch adress wrong?
PPPS: - I am not completely into wireshark yet, but the only messages I am getting 
        on tcp port 6667 are 
                            "connection establish request"       
        and                 "connection establish acknowledge"
4

3 回答 3

1

Twitch 要求使用 OAuth 令牌作为密码。请参阅此处http://help.twitch.tv/customer/portal/articles/1302780-twitch-irc

于 2014-12-11T02:47:27.093 回答
1

根据协议文档,客户端连接协议顺序为:

经过

缺口

用户

而您的机器人似乎正在发送pass, user, nick.

3.1 连接注册

此处描述的命令用于将与 IRC 服务器的连接注册为用户以及正确断开连接。

注册客户端连接不需要“PASS”命令,但它必须在 NICK/USER 组合(对于用户连接)或 SERVICE 命令(对于服务连接)
中的后者之前 。客户注册的推荐顺序 如下:


                       1. Pass message
       2. Nick message                 2. Service message
       3. User message

成功后,客户端将收到一条 RPL_WELCOME(用于用户)或 RPL_YOURESERVICE(用于服务)消息,指示该
连接现在已注册并为整个 IRC 网络所知。回复消息必须包含
注册它的完整客户端标识符。

编辑:

此外,即使协议表明这PASS是可选的,一些服务器仍需要密码,即使不需要密码来连接网络。发送空白PASS是不够的。对于我发送的那些服务器PASS none。(只要密码不为空,什么都可以)。

于 2014-12-11T02:06:13.080 回答
0

答案很简单。我只是通过玩弄它才发现的。这似乎是我的小代码中的一个问题,我没有立即将我的数据发送到服务器。因此,当我将“switch 3:”更改为“switch:1”时,一切都突然起作用了。

仍然为您的所有帮助人员提供帮助!

于 2014-12-16T21:55:43.317 回答