Giter Site home page Giter Site logo

good-life / pushtalk Goto Github PK

View Code? Open in Web Editor NEW
975.0 173.0 606.0 50.4 MB

推聊是一个基于极光推送 (JPush) 的手机聊天系统。支持群聊与点对点聊天。当前包括 Android客户端、iOS客户端与 Java服务器端。3分钟就可以整套系统跑起来。

Home Page: http://androidpush.cn

Java 54.97% Objective-C 45.03%

pushtalk's Introduction

推聊概述 PushTalk Overview

推聊是一个基于极光推送的Android手机聊天系统。支持群聊与点对点聊天。当前包括Android客户端与Java服务器端。3分钟就可以整套系统跑起来。

项目官方网站

http://github.com/good-life/pushtalk

功能与特点

功能列表
  • 频道里群聊
  • 与其他用户点对点聊天
  • 聊天支持文字、表情、URL等
  • 注册用户(不需要密码)
  • 创建频道、加入频道
  • 我的最近聊天、我的频道
  • 聊天记录缓存(在服务器端)
  • 客户端选择聊天服务器、添加聊天服务器
特点
  • 简单到极致的 http 聊天服务器:一个 jar 包跑起来
  • 轻量级客户端:聊天界面使用 Webview 的方式
  • 下行消息推送基于 JPush(一个免费的第三方 Android Push 服务),上行消息采用 http 请求的方式实现

聊天服务器

推聊的服务器端使用 Java 语言编写,基于最简单实用的开源框架。

  • http 服务器使用 Jetty:轻量级的 Java Servlet 容器。
  • 数据库使用 H2: 轻量级的 Java 内存/文件数据库。
  • 页面模板使用 Freemarker:轻量级的 Java 页面模板引擎。
  • 打包时集成为一个整体 jar 包(包含所有的依赖包)

要运行推聊服务器端,请在 github项目界面相关版本下载 dist/ 目录下的 pushtalk-server jar 文件。

要打包 server-java,请在项目该目录下执行 mvn package 命令。

使用如下命令运行服务器:

java -Dfile.encoding=UTF-8 -jar pushtalk-server-with-dependencies.jar

注:实际的文件名后边一般会加上一个版本号。

上述命令运行后:

  • 一个 http server 启动了,监听端口为 10010
  • 浏览器里输入 http://localhost:10010 则可以访问到界面
  • 要正确地运行服务器,需要通过客户端访问

推聊服务器默认使用 10010 端口。可以在上述命令后指定使用另外的端口。比如以下命令指定使用 10011 来启动推聊聊天服务器:

java -Dfile.encoding=UTF-8 -jar pushtalk-server-with-dependencies.jar 10011

Android 客户端

客户端运行,请在 github 文件下载页 https://github.com/good-life/PushTalk/downloads/ 下载 Android apk 安装到 Android 手机即可。

你也可以自己编译 /client-android 项目之后安装到手机。

客户端默认内置官方聊天服务器地址。也可以直接在客户端添加新的服务器,选择新的聊天服务器。

如果你有服务器资源,可以长期运行,欢迎你架设推聊聊天服务器,请添加到以下的页面。经过测试没有问题,会被选择预置到客户端代码里:

https://github.com/good-life/PushTalk/wiki/PushTalk-Third-Party-Servers

开发者支持

欢迎广大开发者加入本开源项目,大家一起来不断地丰满、完善推聊。

本人是因为兴趣业余时间来开发推聊,考虑到 IM 占用的时间太多,所以请谅解,不提供任何 IM 的沟通方式。希望大家以如下的方式交流:

代码提交方式:请先提交Bug修复,把 diff 以文件方式发邮件给我。合作多次后,我可以把你加入到本项目贡献者里来,你就可以随时自由地提交代码了。

你也可以自由地 fork 本项目,自己去发布新的版本。

推聊使用的开源协议:Apache License 2.0

pushtalk's People

Contributors

caosd avatar good-life avatar linbo avatar lincolnlk avatar xiaoyegithub avatar xiezefan avatar yuanqiang avatar zhangqinghe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pushtalk's Issues

增加修改名称的功能

由于当前的聊天记录缓存,是依赖于用户名称的。

所以,需要明确提示:改名后,之前的点对点聊天记录都丢失。

APK在哪里啊?

APK文件直接没有了。。。。client-android 也没有。。。。。跪求解答啊

增加私密频道功能

创建频道时,可选择不公开:秘密。

秘密频道加入需要提交申请。群主(先可只支持创建频道的人就是群主)审核通过后,才可以正式加入频道。

群主可以随时踢掉任何人。

聊天记录

能不能把聊天记录存到redis里面??

jpush-api-v2.0.3.jar 包中缺少 相关类

在dowanload下来对最新的pushTalk-server-java项目中
在依赖的jpush-api-v2.0.3.jar中缺少如下的类。
jpush-api包中没有cn.jpush.api.push的包名
cn.jpush.api.push.CustomMessageParams;
cn.jpush.api.push.MessageResult;
cn.jpush.api.push.ReceiverTypeEnum;

org/pushtalk/server/api/TalkServlet.java 缺少引用的类

org/pushtalk/server/api/TalkServlet.java
依赖的jpush-api-v2.0.3.jar缺少如下类:
import cn.jpush.api.common.APIConnectionException;
import cn.jpush.api.common.APIRequestException;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.