2014-01-27 26 views
1

我在C#中有一些XMPP消息传递的代码。我无法将消息发送给其他用户。如何在c#中使用agsxmpp进行gtalk配置?

using agsXMPP; 
using agsXMPP.protocol.client; 
using agsXMPP.Collections; 
using agsXMPP.protocol.iq.roster; 
using System.Threading; 
using Microsoft.Win32; 

public partial class Talk : Form 
{ 
    agsXMPP.XmppClientConnection objXmpp; 

    public Talk() 
    { 
     InitializeComponent(); 
    } 

    private void btnSend_Click(object sender, EventArgs e) 
    { 
     XmppClientConnection xmpp = new XmppClientConnection(); 
     xmpp.Server = "gmail.com"; 
     xmpp.ConnectServer = "talk.google.com"; 
     xmpp.Port = 5222; 
     xmpp.Username = "[email protected]"; 
     xmpp.Password = "******"; 
     xmpp.Open(); 

     agsXMPP.Jid JID = new Jid("[email protected]"); 

     xmpp.MesagageGrabber.Add(JID, new agsXMPP.Collections.BareJidComparer(), new MessageCB(MessageCallBack), null); 

     agsXMPP.protocol.client.Message msg = new agsXMPP.protocol.client.Message(); 
     msg.Type = agsXMPP.protocol.client.MessageType.chat; 
     msg.To = JID; 
     msg.Body = " asdfasdfasdf " ;// simple string 

     xmpp.OnLogin += delegate(object o) { xmpp.Send(msg); }; 

     xmpp.Close(); 


    } 
    static void MessageCallBack(object sender,agsXMPP.protocol.client.Message msg,object data) 
    { 
     if (msg.Body != null) 
     { 
      Console.ForegroundColor = ConsoleColor.Red; 
      Console.WriteLine("{0}>> {1}", msg.From.User, msg.Body); 
      Console.ForegroundColor = ConsoleColor.Green; 
     } 
    } 
} 

我在做什么错?

回答

1

1)的用户名是发件人(小写),不[email protected][email protected]是完整的Jid

2)agsXMPP完全异步。这意味着你的xmpp.Open()调用不会被阻止。您的运行会在运行完成之前立即关闭连接。

3)看看agsXMPP示例

相关问题