Tinode 인스턴트 메시징 서버
인스턴트 메시징 풀 스택. 순수 Go(라이선스 GPL 3.0)의 백엔드, Android(Java), iOS(Swift) 및 웹(ReactJS)용 클라이언트는 물론 C++, C#, Go, Java, Node, PHP, Python, Ruby에 대한 gRPC 클라이언트 지원 , Objective-C 등(Apache 2.0에 따라 라이센스가 부여된 모든 클라이언트). 유선 전송은 websocket(장기 폴링도 사용 가능)을 통한 JSON 또는 gRPC를 사용한 protobuf입니다.
이것은 베타 품질의 소프트웨어입니다. 기능이 완벽하고 안정적이지만 몇 가지 버그나 누락된 기능이 있을 수 있습니다. 지침에 따라 아래 클라우드 서비스 중 하나를 설치 및 실행하거나 사용하세요. API 문서를 읽어보세요.
Tinode는 XMPP/Jabber가 아닙니다 . XMPP와 호환되지 않습니다 . XMPP를 대체한다는 의미입니다. 표면적으로는 오픈 소스 WhatsApp이나 Telegram과 매우 유사합니다.
왜?
XMPP의 약속은 통합 인스턴트 메시징을 제공하는 것이었습니다. 누구든지 전 세계의 다른 XMPP 서버와 메시지를 교환할 수 있는 IM 서버를 가동할 수 있을 것입니다. 불행하게도 XMPP는 이 약속을 결코 이행하지 않았습니다. 인스턴트 메신저는 여전히 1990년대 후반의 AoL이 개방형 인터넷에 있었던 것과 유사한 호환되지 않는 벽으로 둘러싸인 정원입니다.
이 프로젝트의 목표는 XMPP의 원래 비전을 전달하는 것입니다. 즉, 모바일 통신에 중점을 둔 연합 인스턴트 메시징을 위한 현대적인 개방형 플랫폼을 만드는 것입니다. 두 번째 목표는 정부가 추적하고 차단하기가 훨씬 어려운 분산형 IM 플랫폼을 만드는 것입니다.
명시적인 비목표: 우리는 또 다른 Slack 대체품을 아직 구축하지 않습니다.
설치 및 실행
일반 지침 또는 Docker별 지침을 참조하세요.
지원 받기
- API 문서 및 FAQ를 읽어보세요.
tinode.conf
파일에 포함된 구성 지침을 읽어보세요. - 지원, 일반적인 질문, 토론은 https://groups.google.com/d/forum/tinode에 게시됩니다.
- 버그 및 기능 요청이 있는 경우 이슈를 열어주세요.
- 상업적인 문의는 https://tinode.co/contact를 이용하세요.
도와주는 것
- 우리의 작업에 감사한다면, 소문을 퍼뜨리는 데 도움을 주세요! Reddit, HN 및 기타 커뮤니티에 공유하면 생각보다 많은 도움이 됩니다.
- 유료 지원 구매를 고려해보세요: https://tinode.co/support.html
- 소프트웨어 개발자라면 버그 수정 및 새로운 기능이 포함된 풀 요청을 보내주세요.
- 앱을 사용하다가 버그나 누락된 기능을 발견한 경우 버그 보고서 및 기능 요청을 제출하여 알려주십시오. 가장 가치 있다고 생각하는 기존 기능 요청에 투표하세요.
- 영어가 아닌 언어를 사용하는 경우 앱을 해당 언어로 번역하세요. 기존 번역을 검토하고 개선할 수도 있습니다.
- UI/UX 전문가라면 앱 UI를 개선하는 데 도움을 주세요.
- 사용: 직장이나 집에서 동료나 친구를 위해 설치하세요.
공공 서비스
공용 Tinode 서비스를 사용할 수 있습니다. 다른 인스턴트 메신저와 마찬가지로 사용할 수 있습니다. 샌드박스에 있는 데모 계정은 공개 서비스에서 사용할 수 없다는 점을 명심하세요. 서비스를 이용하시려면 유효한 이메일을 사용하여 계정을 등록하셔야 합니다.
편물
단일 페이지 웹 앱인 TinodeWeb은 https://web.tinode.co/(출처)에서 사용할 수 있습니다. 아래 스크린샷을 참조하세요.
기계적 인조 인간
Tindroid라고도 알려진 Android용 Tinode는 안정적이고 기능적입니다(출처). 아래 스크린샷을 참조하세요. 편의를 위해 디버그 APK도 제공됩니다.
iOS
iOS용 Tinode(일명 Tinodios)는 안정적이고 기능적입니다(출처). 아래 스크린샷을 참조하세요.
데모/샌드박스
샌드박스 데모 서비스는 https://sandbox.tinode.co/에서 제공됩니다.
alice
, bob
, carol
, dave
, frank
중 하나로 로그인합니다. 비밀번호는 <login>123
입니다. 예를 들어 alice
의 로그인은 alice123
입니다. 이메일이나 전화로 각각 email:
또는 tel:
접두사를 붙여서 다른 사용자를 찾을 수 있습니다. 이메일은 <login>@example.com
입니다(예: [email protected]
). 전화는 +17025550001
~ +17025550009
입니다.
새 계정을 등록할 때 인증 코드를 보낼 이메일 주소를 묻는 메시지가 나타납니다. 데모 목적으로 123456
범용 인증 코드로 사용할 수 있습니다. 이메일로 받은 코드도 유효합니다.
샌드박스 노트
- 샌드박스 서버는 태평양 표준시 기준 매일 밤 오전 3시 15분에 재설정됩니다(모든 데이터 삭제).
User not found or offline
오류 메시지는 연결된 동안 서버가 재설정되었음을 의미합니다. 웹에서 본 경우 새로고침하고 다시 로그인하세요. Android에서는 로그아웃했다가 다시 로그인하세요. 데이터베이스가 변경된 경우 앱을 삭제한 후 다시 설치하세요. - 샌드박스 사용자
Tino
는 모든 메시지에 임의의 인용문으로 응답하는 기본 챗봇입니다. - 일반적으로 인정되는 바와 같이, 새 계정을 등록할 때 이메일 주소를 묻는 메시지가 표시됩니다. 서버는 해당 주소로 확인 코드가 포함된 이메일을 보내며 이를 사용하여 계정을 확인할 수 있습니다. 테스트를 더 쉽게 하기 위해 서버는
123456
인증 코드로 허용합니다. 이 옵션을 비활성화하려면 tinode.conf
에서 "debug_response": "123456"
줄을 제거하세요. - 샌드박스 서버는 SNI에 대한 하드 코딩된 요구 사항과 함께 ACME TLS 구현을 사용하도록 구성됩니다. 연결할 수 없는 경우 TLS 클라이언트의 SNI 지원이 누락되었을 가능성이 가장 높습니다. 다른 클라이언트를 사용하십시오.
- 기본 웹 앱은 축소된 단일 자바스크립트 번들과 축소된 CSS를 로드합니다. 축소되지 않은 버전은 https://sandbox.tinode.co/index-dev.html에서도 사용할 수 있습니다.
- 동일한 데모가 포함된 Docker 이미지를 사용할 수 있습니다.
- 샌드박스에 대해 클라이언트 소프트웨어를 테스트하고 해킹하는 등의 작업을 수행하실 수 있습니다. 하지만 DDoS 공격은 하지 마십시오.
특징
지원됨
- 다양한 기본 플랫폼:
- 안드로이드(자바)
- iOS(스위프트)
- 웹(React.js)
- 스크립트 가능한 명령줄(Python)
- 사용자 기능:
- 일대일 및 그룹 메시징.
- 영상 및 음성 통화. 음성 메시지.
- 읽기 전용 구독자 수에 제한이 없는 채널입니다.
- 모든 채팅은 모든 장치에서 동기화됩니다.
- 다양한 작업에 대한 권한을 통해 세분화된 액세스 제어.
- 사용자 검색/발견.
- 메시지 마크다운 스타일의 풍부한 형식: *style* → style , 인라인 이미지, 비디오, 첨부 파일 포함.
- 챗봇에 적합한 양식 및 템플릿 응답.
- 검증된/직원/신뢰할 수 없는 계정 표시.
- 메시지 상태 알림: 서버로 메시지 전달; 알림을 받고 읽었습니다. 알림을 입력합니다.
- 연락처 목록의 최신 메시지 미리보기.
- 사람, 그룹 채팅에 대해 서버에서 생성된 현재 상태 알림입니다.
- 메시지 전달 및 회신.
- 보낸 메시지를 편집합니다.
- 관리:
- 다양한 작업에 대한 권한을 통해 세분화된 액세스 제어.
- 사용자 정의 인증 백엔드를 지원합니다.
- 원치 않는 통신 서버 측을 차단하는 기능.
- 익명 사용자(채팅을 통한 기술 지원과 관련된 사용 사례에 중요)
- 예를 들어 조정이나 챗봇을 지원하기 위해 기능을 확장하는 플러그인입니다.
- 서버 관리를 위한 스크립트 가능한 명령줄 도구입니다.
- 성능, 신뢰성 및 개발:
- 장애 조치가 포함된 샤드 클러스터링.
- 로컬 파일 시스템 또는 Amazon S3를 사용하여 이미지나 문서 파일과 같은 대용량 객체를 저장하고 대역 외 전송합니다(다른 저장 시스템은 미디어 핸들러로 지원될 수 있음).
- JSON 또는 protobuf 버전 3 와이어 프로토콜.
- 다양한 프로그래밍 언어에 대한 바인딩:
- 외부 종속성이 없는 자바스크립트입니다.
- Jackson 및 Java-Websocket에 종속된 Java. Android에 적합하지만 Android SDK 종속성이 없습니다.
- 외부 종속성이 없는 Swift입니다.
- C/C++, C#, Go, Python, PHP, Ruby 및 기타 여러 언어에서 gRPC를 사용합니다.
- 데이터베이스 백엔드 선택. 어댑터를 작성하여 다른 데이터베이스를 추가할 수 있습니다.
- MySQL
- 포스트그레SQL
- 몽고DB
- RethinkDB
예정
- 연합.
- 위치 및 연락처 공유.
- 첨부문서, 링크 미리보기.
- 비디오 메시지를 녹음합니다.
- 비디오/오디오 방송.
- 그룹 영상/음성 통화.
- 음성 메시지 이외의 음악/오디오 첨부.
- 더 나은 이모티콘 지원.
- 다양한 수준의 메시지 지속성(엄격한 지속성부터 "전달될 때까지 저장", 순전히 임시 메시징까지)
- 미사용 메시지 암호화.
- 일대일 메시징의 경우 OTR을 사용한 엔드투엔드 암호화와 그룹 메시징의 경우 미정 방식입니다.
- 메시지에서 전체 텍스트를 검색합니다.
번역
모든 클라이언트 소프트웨어는 국제화를 지원합니다. 다음 번역이 제공됩니다:
언어 | 섬기는 사람 | 웹앱 | 기계적 인조 인간 | iOS |
---|
영어 | ✓ | ✓ | ✓ | ✓ |
중국어 간체 | ✓ | ✓ | ✓ | ✓ |
중국어 번체 | | ✓ | ✓ | ✓ |
프랑스 국민 | ✓ | ✓ | ✓ | |
독일 사람 | | ✓ | ✓ | |
힌디 어 | | | ✓ | |
한국인 | | ✓ | ✓ | |
포르투갈 인 | ✓ | | ✓ | |
루마니아 사람 | | ✓ | ✓ | |
러시아인 | ✓ | ✓ | ✓ | ✓ |
스페인 사람 | ✓ | ✓ | ✓ | ✓ |
태국어 | | ✓ | | |
우크라이나 말 | ✓ | ✓ | ✓ | ✓ |
베트남 사람 | ✓ | | | |
더 많은 번역을 환영합니다. 위에 나열된 언어 외에도 특히 아랍어, 벵골어, 인도네시아어, 우르두어, 일본어, 터키어, 페르시아어에 관심이 있습니다.
제3자
프로젝트
- 아랑고 DB 어댑터
- DynamoDB 어댑터(구식)
라이센스
- 데모 아바타 및 기타 그래픽은 CC0 라이선스에 따라 https://www.pexels.com/에서, 해당 라이선스에 따라 https://pixabay.com/에서 제공됩니다.
- 웹 및 Android 배경 패턴은 CC BY-SA 3.0 라이선스에 따라 http://subtlepatterns.com/에서 가져왔습니다.
- Android 아이콘은 Apache 2.0 라이센스에 따라 https://material.io/tools/icons/에 있습니다.
스크린샷
기계적 인조 인간
iOS
데스크톱 웹
모바일 웹
SEO 문자열
중국어, 러시아어, 페르시아어 및 기타 몇 가지 언어로 '채팅' 및 '인스턴트 메시징'이라는 단어가 사용됩니다.
- 聊天室 即시계통신
- 그 메신저
- 인스턴트멧세이지
- 지금의 벨트
- 로잔 포리
- 트랄 포리
- 포리 پیgam رسانی
- Nhắn Tin tức thời
- 다른 메시지를 보내십시오.
- 멘사게이로 인스턴트네오
- 페산 인스턴트
- mensajería 순간
- 당신은 당신의 친구입니다
- 채팅 및 발표
- 우리는 당신의 친구입니다.