DDpush搭建学习笔记

提示:DDpush笔记


前言

DDPush的出发点,是绕过已有的各种门槛和障碍,寻求另外一种简单有效的方法,来尝试折衷地实现移动互联网、物联网时代IM和信息推送需求。DDPush的目的是帮助中小型应用和个人开发者,较容易地跨过IM和推送系统的基本门槛,而不是挑战和取代已有的业界标准和产品。DDPush,任意门推送服务器,只是另外一道门,也许能打开另外一个世界,但绝不是包含整个世界。

DDPush的思路,有点类似MQTT,重新定义了一套较简单和低级的网络通讯协议,来达到更小的流量、更高的效率、以及更好的通用性。而DDPush和MQTT的区别在于,DDPush更为简单,放弃了QoS,只实现极为简单的实时通讯需求,剩下的更多是交由应用层去控制。另外,DDPush实现并主推UDP方式,大为降低网络通信成本和服务器承载成本,提高了容量和效率。


一、DDpush下载

下载地址:git
jar启动:start即可
在这里插入图片描述
源码启动:IMserver启动即可
在这里插入图片描述
在这里插入图片描述

二、项目使用步骤

1.引入库

依赖ddpush包:

mvn deploy:deploy-file -DrepositoryId=nexus-releases -DgroupId=org.ddpush -DartifactId=ddpush -Dversion=1.0.03 -Dpackaging=jar -Dfile=ddpush-1.0.03.jar -Durl=http://***/nexus/content/repositories/releases/

在这里插入图片描述
添加依赖

        <dependency>
            <groupId>org.ddpush</groupId>
            <artifactId>ddpush</artifactId>
            <version>1.0.03</version>
        </dependency>

2.Java发送接收客户端

发送端示例:

import org.ddpush.im.util.StringUtil;
import org.ddpush.im.v1.client.appserver.Pusher;

public class DDpushClient {
    public static void main(String[] args) throws Exception {
        Pusher pusher = null;
        try {
            //三个参数分别对应:DDPush服务器IP,DDPush默认推送端口,响应超时
            pusher = new Pusher("127.0.0.1", 9999, 5000);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        pusher.push0x20Message(StringUtil.md5Byte("user2"), "你是谁1".getBytes("UTF-8"));

    }
}

接收端示例


import org.ddpush.im.v1.client.appuser.Message;
import org.ddpush.im.v1.client.appuser.TCPClientBase;

import java.io.UnsupportedEncodingException;

public class MyTCPClient extends TCPClientBase {
	
	public MyTCPClient(byte[] uuid) throws Exception {
        //uuid, appid, DDPush服务器IP,DDPush默认接收消息的端口,响应超时
		super(uuid, 1, "127.0.0.1", 9966, 5);
	}
 
	@Override
	public boolean hasNetworkConnection() {
		// TODO Auto-generated method stub
		return true;
	}
 
	@Override
	public void onPushMessage(Message msg) {
		// TODO Auto-generated method stub
		if (msg == null) {
			System.out.println("msg is null");
			return;
		}
		
		if (msg.getData() == null || msg.getData().length == 0) {
			System.out.println("msg has no data");
			return;
		}
		String str = null;
		try {
			str = new String(msg.getData(),5,msg.getContentLength(), "UTF-8");
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			str = "Exception";
		}
		System.out.println(str);
	}
 
	@Override
	public void trySystemSleep() {
		// TODO Auto-generated method stub
	}
}

import org.ddpush.im.util.StringUtil;

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) throws Exception {
        try {
            ArrayList list = new ArrayList();
            for (int i = 0; i < 3; i++) {
                byte[] uuid = StringUtil.md5Byte("user" + i);
                //System.out.println("uuid is: "+StringUtil.convert(uuid));
                MyTCPClient myTcpClient = new MyTCPClient(uuid);
                myTcpClient.setHeartbeatInterval(50);
                myTcpClient.start();
                //Thread.sleep(1000);
                list.add(myTcpClient);
            }
            synchronized (list) {
                list.wait();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


总结

简单、快捷 方便的实现IM

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值