简介

DOTNET-SDK为软件中间件,提供了点对点消息、发布订阅主题消息、群消息、文件传输、内网直连等功能,本开发向导帮助用户 在Windows平台上实现点对点消息功能。


环境准备

  • 开发工具 VisualStudio 2010或者更高版本
  • 新建C# 工程,将工程framework设置为.net framework 4.0版本(不是client profile版本)
  • 将DOTNETSDK引用到工程

 


调用流程

  • DOTNET-SDK的参考开发过程如下:
    • 创建EtContext对象
    • 发现服务器:
    • 连接服务器;
    • 发送消息;
    • 接收消息;
    • 断开服务器连接;

 

消息收发

 

1. 创建EtContext

  • 在已知UID、AppKey、SecretKey的情况下可创建一个EtContext上下文。
string bordcastIp = "192.168.199.255";//修改成你的设备所在网段广播地址
int timeout = 2000;//搜索超时时间 单位毫秒
string uid = "Fc5wGsTuvumomVom4HgfhyBbnbM69ahpcq";
string appkey = "c5ef9f36-bf83-204126";
string securekey = "5ad89f5194599d49f535eba1ce11233d";
string lbserver = "lb.kaifakuai.com";
int lbport = 8085;
EtConfig config = new EtConfig(appkey, securekey, lbserver, lbport,bordcastIp, uid);
EtContext etContext = EtManager.CreateEtcontext(config);
            

 

2. 注册事件

  • 创建实例后,用户需要注册消息事件,通过事件处理SDK消息

//注册事件
etContext.OnChatToMsgReceived += new EtMsgPublishEventHandler(etContext_OnChatToMsgReceived);
etContext.ConnectionClosed += new ConnectionClosedEventHandler(etContext_ConnectionClosed);
static void etContext_OnChatToMsgReceived(object sender, Et.Im.Messages.EtMsgPublishEventArgs e)
{
	string msg = Encoding.UTF8.GetString(e.Message);
	Console.WriteLine(string.Format("Recv msg = {0}", msg));
}
static void etContext_ConnectionClosed(object sender, EventArgs e)
{
	Console.WriteLine("ConnectionClosed");
}
            

 

3. 发现服务器

  • 发现服务器

EtContext.DiscoverServers(config, OnFoundServer, null, timeout);
public void OnFoundServer(bool bl, EtServerFoundEventArgs info)
{
	EtServerInfo serverInfo=null;
	if (info == null || info.ServerInfo != null)
	{
		serverInfo=info.ServerInfo;
		Console.WriteLine("FoundServer");
	}
}
            

 

4. 连接服务器

  • EtContext实例创建成功后,可以连接服务器,连接参数是EtServerInfo对象实例

etContext.Connect(serverInfo, ConnHandler);
void ConnHandler(object sender, EtConnectEventArgs e)
{
	if (e.ConnectStatus == EtConnStatus.Connected)
	{
		Console.WriteLine("Connect success");
	}
	else
	{
		Console.WriteLine("Connect failed");
	}
}
            

 

5. 点对点消息收发

  • 发送消息


 etContext.ChatTo(recvuid,"hello", ChatToHandler);
 void ChatToHandler(object sender, EtMsgPublishedEventArgs e)
{
	if (e.IsPublished)
	{	
		Console.WriteLine(string.Format("{0} publised success", e.MessageId));
	}
	else
	{
		Console.WriteLine(string.Format("{0} publised failed", e.MessageId));
	}
}
            
  • 接收消息


void etContext_OnChatToMsgReceived(object sender, EtMsgPublishEventArgs e)
{
	string msg = Encoding.UTF8.GetString(e.Message);
	Console.WriteLine(string.Format("Recv msg = {0}", msg));
}
            

 

  • 6. 断开服务器连接

  • 
    etContext.Disconnect();
                

     


    完整示例

    点对点消息示例代码