athreya92 / chatchat

A simple chat system, supports text/voice/video chat, including a native iOS WebRTC client and a signaling system based on socket.io & Node.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chatchat

A simple chat system demostrating how to build chat applications based on WebRTC, socket.io & Node.js

This system including a web server, a web client, and an iOS client, supports realtime text/voice/video chat.

The iOS client supports voip socket mode which means it could receive message even in background

Note: Since voip mode is deprecated from iOS 10, so you can no longer receive messages from background anymore. Refer here.

#About WebRTC WebRTC is an open framework for the web that enables Real Time Communications in the browser. It includes the fundamental building blocks for high-quality communications on the web, such as network, audio and video components used in voice and video chat applications.

Home page : https://webrtc.org/

Source : https://chromium.googlesource.com/external/webrtc

#About Socket.io Socket.IO is a JavaScript library for realtime web applications. It enables realtime, bi-directional communication between web clients and servers. It has two parts: a client-side library that runs in the browser, and a server-side library for node.js. Both components have a nearly identical API. Like node.js, it is event-driven.

Socket.IO primarily uses the WebSocket protocol with polling as a fallback option, while providing the same interface. Although it can be used as simply a wrapper for WebSocket, it provides many more features, including broadcasting to multiple sockets, storing data associated with each client, and asynchronous I/O.

Home page : http://socket.io/

Socket.io webserver : https://github.com/socketio/socket.io

Socket.io swift client : https://github.com/socketio/socket.io-client-swift

#Deploy steps ##run your server Make sure Node is installed first, then open your terminal

cd Server

npm install

node index.js

##run your web client

  • open localhost:3000 on your browser
  • type in your nickname and submit

##run your iOS client

  • install dependency with pod install
  • open xcworkspace file
  • build and run
  • upon application launch, type in your host address(server address you are running on)
  • choose anyone online and start video chat

Enjoy chating! 😄

About

A simple chat system, supports text/voice/video chat, including a native iOS WebRTC client and a signaling system based on socket.io & Node.js

License:MIT License


Languages

Language:JavaScript 52.8%Language:Objective-C 43.1%Language:HTML 4.0%Language:Ruby 0.1%Language:CSS 0.0%