zoukankan      html  css  js  c++  java
  • JabberNet -Jabbber .net客户端框架(XMPP协议)

    JabberNet 是一个 .NET 的 Jabber (XMPP)协议的客户端开发包,示例代码:

    using System;
    using System.Threading;
    
    using jabber.client;
    
    namespace SendMessage
    {
        class Program
        {
            // we will wait on this event until we're done sending
            static ManualResetEvent done = new ManualResetEvent(false);
            // if true, output protocol trace to stdout
            const bool VERBOSE = true;
            const string TARGET = "otheruser@example.com";
    
            static void Main(string[] args)
            {
                JabberClient j = new JabberClient();
                // what user/pass to log in as
                j.User = "someuser";
                j.Server = "example.com";  // use gmail.com for GoogleTalk
                j.Password = "somepassword";
    
                // don't do extra stuff, please.
                j.AutoPresence = false;
                j.AutoRoster = false;
                j.AutoReconnect = -1;
    
                // listen for errors.  Always do this!
                j.OnError += new bedrock.ExceptionHandler(j_OnError);
    
                // what to do when login completes
                j.OnAuthenticate += new bedrock.ObjectHandler(j_OnAuthenticate);
    
                // listen for XMPP wire protocol
                if (VERBOSE)
                {
                    j.OnReadText += new bedrock.TextHandler(j_OnReadText);
                    j.OnWriteText += new bedrock.TextHandler(j_OnWriteText);
                }
    
                // Set everything in motion
                j.Connect();
    
                // wait until sending a message is complete
                done.WaitOne();
    
                // logout cleanly
                j.Close();
            }
    
            static void j_OnWriteText(object sender, string txt)
            {
                if (txt == " ") return;  // ignore keep-alive spaces
                Console.WriteLine("SEND: " + txt);
            }
    
            static void j_OnReadText(object sender, string txt)
            {
                if (txt == " ") return;  // ignore keep-alive spaces
                Console.WriteLine("RECV: " + txt);
            }
    
            static void j_OnAuthenticate(object sender)
            {
                // Sender is always the JabberClient.
                JabberClient j = (JabberClient)sender;
                j.Message(TARGET, "test");
    
                // Finished sending.  Shut down.
                done.Set();
            }
    
            static void j_OnError(object sender, Exception ex)
            {
                // There was an error!
                Console.WriteLine("Error: " + ex.ToString());
    
                // Shut down.
                done.Set();
            }
        }
    }
    
  • 相关阅读:
    12306是如何实现高流量高并发的关键技术
    阿里知名工程师
    侵入式和非侵入式的区别
    二叉树节点的最大距离
    2014阿里面经(转)
    jq checkbox的相关操作——全选、反选、获得所有选中的checkbox
    表现和数据分离的好处
    css3完成多边形
    程序员,如何从平庸走向理想?--转载
    js对象和字符串相互转换
  • 原文地址:https://www.cnblogs.com/l1pe1/p/14706904.html
Copyright © 2011-2022 走看看