TeamTalk

开源即时通讯解决方案
授权协议 Apache
开发语言 Java
所属分类 建站系统、 SNS社交网络/交友平台
软件类型 开源软件
地区 国产
投 递 者 严言
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

项目背景

蘑菇街能有今天的快速发展,得益于开源软件群雄崛起的大环境背景,我们一直对开源社区怀有感恩之情,因此也一直希望能为开源社区贡献一份力量。

2013年我们蘑菇街从社区导购华丽转身时尚电商平台,为解决千万妹子和时尚卖家的沟通问题,我们开发了自己的即时通讯软件。既然已经有了用户使用 的IM,为什么我们自己公司内部沟通还要用第三方的呢?因此就有了TT(TeamTalk)的雏形,现在蘑菇街内部的在线沟通全部通过TT来完成。随着 TT功能的逐渐完善,我们决定把TT开源来回馈开源社区,希望国内的中小企业都能用上开源、免费、好用的IM工具!

项目介绍

  • 名称:TeamTalk

  • 官网:http://tt.mogu.io/

  • 开源协议:Apache License, Version 2.0

  • 定位:中小型企业用户,member >= 2

  • 特点:开源与产品并重

  • 功能:可靠的消息传递机制;支持文字、图片、语音等富文本信息;文件收发等

项目框架

麻雀虽小五脏俱全,本项目涉及到多个平台、多种语言,简单关系如下图:

teamtalk架构图

服务端:

CppServer:TTCppServer工程,包括IM消息服务器、http服务器、文件传输服务器、文件存储服务器、登陆服务器 java DB Proxy:TTJavaServer工程,承载着后台消息存储、redis等接口 PHP server:TTPhpServer工程,teamtalk后台配置页面

客户端:

  • mac:TTMacClient工程,mac客户端工程

  • iOS:TTIOSClient工程,IOS客户端工程

  • Android:TTAndroidClient工程,android客户端工程

  • Windows:TTWinClient工程,windows客户端工程

  • 语言:c++、objective-c、java、php

  • 系统环境:Linux、Windows,Mac, iOS, Android

  • 前言 在上一篇中,简单的分析了下各个服务端的配置,在这一篇中,简单的分析下TeamTalk服务端的整个运作流程。 服务端流程 服务端的启动没有严格的先后流程,因为各端在启动后会去主动连接其所依赖的服务端。不过在此,如果是线上环境,还是建议按照如下的启动顺序去启动(也不是唯一的顺序): 1、启动db_proxy。 2、启动route_server,file_server,msfs 3、启动login

  • gitee地址: TeamTalk: opensource im - Gitee.com db_proxy_server启动会报: error while loading shared libraries libhiredis.so.0.13 拷贝: cp /home/TeamTalk/server/src/hiredis/hiredis-master/libhiredis.so /home/Te

  • 在看之前需要知道,本篇文章以Login_server为主体分析 对于监听fd(也就是listenfd)的回调函数的接口是不同的 (有http_callback,msg_serv_callback,client_callback三种接口),而普通的fd的回调函数的统一接口是imconn_callback(除了客户端请求登录的http连接的接口是httpconn_callback),记住imconn_

  • 一、线程池模型 生产者自主选择消费者(teamtalk思路):任务队列存在于每个工作线程,当有新任务到来时,线程池管理线程自主随机向其中一个工作线程派发任务,推送到该工作线程的任务队列中,接着唤醒该工作线程,从任务队列中取出任务执行。 每个工作线程拥有一个条件变量,一把锁,但是通过类CThreadNotify管理使用方便很多 消费者竞争:线程池管理线程维护任务队列,当有任务到来时,任务存于该队列中

  • 项目下载地址:https://github.com/mogujie/TeamTalk.git 安装环境:centos7.0+vmware14.0.0+windows 安装前的网络准备(局域网): vmware设置->选择桥接网络 windows静态ip地址,例如192.168.11.102  设置centos静态ip地址,例如192.168.11.104 1、下载源码 cd /root git c

  •  TeamTalk是蘑菇街开源的一款企业内部用的即时通讯软件(Enterprise IM),类似腾讯的RTX。。

  • 1. 简介 用于TeamTalk通讯数据包的构造与解析 CImPdu结构为自定义头+protobuf序列化后的消息 该模块依赖于UtilPdu工具类,使用了protobuf第三方库 2. 常用接口说明 pdu header结构如下: typedef struct { uint32_t length; // the whole pdu length uint16_t ver

  • 一、部署环境 系统:centos7 X64位(32位不支持)核心版本 二、部署过程 项目下载地址https://github.com/mogujie/TeamTalk.git,这个项目已经是三年前的版本,其中有部分脚本的地址已经404了,也就是mariadb中的源部分,部署的时候需要修改。我修改了一下,上传到我的gitee的代码仓了,供大家使用。 cd /opt git clone https:/

  • 1.简介 使用pthread.h封装了普通锁、读写锁、普通局部锁和读写局部锁 2.主要类说明 CLock:封装了普通锁的实现 主要接口: lock/try_lock:加锁/尝试加锁 unlock:解锁 CRWLock:封装了读写锁的实现 主要接口: rlock/wlock:加读锁/加写锁 try_rlock/try_wlock:尝试加读锁/尝试加写锁 unlock:解锁 CAutoLock:封装了

 相关资料
  • 本文向大家介绍B/S(Web)实时通讯解决方案分享,包括了B/S(Web)实时通讯解决方案分享的使用技巧和注意事项,需要的朋友参考一下 B/S的实时通讯实现起来比较麻烦,因为http协议是无状态的,导致一些实时消息通知和聊天等功能比较难以实现,本文主要简述几种自己之前常用的几种方式。 1、传统的HTTP协议是无状态的 传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器

  • Lync (后来被微软收购之后改名为 Skype for business) 没有 linux 版本,但是我们可以通过 pidgin 这个IM通用外壳配置 sipe 插件来实现和 Lync 的兼容和相互通讯。 注: 方案不够完美,但是至少,可以解决有没有的问题。 Pidgin 上一节介绍到,Linux Mint 18 自带 pidgin,也可以自行卸载再从源码编译安装到最新版本。 特别说明: 手工

  • Linux Mint 自带 pidgin,版本是 2.10。 从源码编译 如果想升级到最新版本,或者,因为某些特殊原因导致内置版本的 pidgin 不可使用,就需要考虑从源码开始编译。 特别说明: 手工编译升级 pidgin 和 lync插件 pidpin-sipe 到最新版本之后,开始可以使用,后面不久就莫名其妙的出问题,表现为 pidgin 启动之后无法找到 pidpin-sipe 导致无法支

  • Skype for Linux Alpha 是Skype for Linux 新版本的早期版本。 安装 下载地址: https://go.skype.com/skypeforlinux-64-alpha.deb 完成之后直接右键点击 deb 文件通过 Gdebi package installer 安装。 安装完成之后,在互联网下就可以找到 Skype for Linux Alpha: 这是 ab

  • 软件: Skype: skype For Linux Alpha Pidgin: 支持多协议的即时通讯软件 Lync兼容方案: 用于兼容 Lync 2013 / skype for business