gargron / baron Goto Github PK
View Code? Open in Web Editor NEWBaron is a WebRTC-based IM for the browser
License: BSD 2-Clause "Simplified" License
Baron is a WebRTC-based IM for the browser
License: BSD 2-Clause "Simplified" License
The .wav ping file is too large and has audible static hiss above 11 kHz.
Currently the Contact object for the correspondent will stay in the "trying to connect" stay unless the user on the other end accept the offer in some way. Of course, if the other user declines the offer, or leaves the site, no feedback will be sent to the original caller.
For going offline, the solution is simple. Just reset the peer state as if on hangup. The offer to the other user will be lost anyway.
For declined offers, it's more complicated. If we implement a simple timeout on our end, after which we would reset the peer state, the other user might try to send us an answer to the offer at a later time, which would throw an invalid state exception and do nothing else.
Perhaps declines would need to be transferred through the signaling channel as well.
Add a UI action to block a contact, which would put the contact in a special state, removing it from the contacts list of the blocker and of the blocked person, and preventing any further contact requests to be shown to the blocker in the future.
The address to which the Socket.io client will try to connect is hardcoded, and cannot currently be set through environmental variables (ideal solution).
Through sounds and a blinking document title. Needs to go away when document is focused.
Instead of showing the offer/answer process to the user, try to automatically establish a data channel to user's contacts.
Store conversations in browser's memory, and allow synchronization on start-up.
Introduce abstractions that would choose available prefixes for WebRTC objects and handle browser-specific quirks.
Currently the last socket.io connection of a user to be established takes place in the user.sid
property, and whenever a connection is closed, the sid
will be set to null, even if the user is still online in a different tab.
This probably requires using an array for the sid
property, and using socket.io rooms (user == room, all user's connections join a room, dispatch messages to user to that room).
Move data to a persistent database instead of storing them in memory. Currently a lot of pointers are being thrown around.
The fix at e36c842 didn't actually work because the accept
callback passed to the event handler is inherently bound to the old peer connection.
It is basic functionality for a chat client to have a basic emote function.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.