πŸ—¨οΈ Nextcloud Talk – chat, video & audio calls for Nextcloud

Last update: May 21, 2022

Nextcloud Talk

A video & audio conferencing app for Nextcloud

Why is this so awesome?

  • πŸ’¬ Chat Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mentioning other participants.
  • πŸ‘₯ Private, group, public and password protected calls! Invite someone, a whole group or send a public link to invite to a call.
  • πŸ’» Screen sharing! Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this Chrome extension).
  • πŸš€ Integration with other Nextcloud apps like Files, Calendar, User status, Dashboard, Flow, Contacts and Deck, with more to come.
  • 🎑 We’re not reinventing the wheel! Based on the great simpleWebRTC library.
  • πŸŒ‰ Sync with other chat solutions With Matterbridge being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.

More in the works for the coming versions.

If you have suggestions or problems, please open an issue or contribute directly :)

Supported Browsers

Browser Compatible
Firefox βœ”οΈ 52 or later
Chrome/Chromium βœ”οΈ 49 or later
Opera βœ”οΈ 72 or later
Edge ⚠️ Latest versions
🎀 Speakers are not promoted
🏷 Name changes while a call is on-going are not reflected
Safari ⚠️ 12 or later
❌ No screensharing support
πŸ–₯ Viewing screens of others' work

Installing for Production

Nextcloud Talk is really easy to install. You just need to enable the app from the Nextcloud App Store and everything will work out of the box.

There are some scenarios (users behind strict firewalls / symmetric NATs) where a TURN server is needed. That's a bit more tricky to install. You can find instructions in our documentation and the team behind the Nextcloud VM has developed a script which takes care of everything for you (vm-talk.sh). The script is tested on Ubuntu Server 18.04, but should work on 16.04 as well. Please keep in mind that it's developed for the VM specifically and any issues should be reported in that repo, not here.

Here's a short video on how it's done.

Scalability

Talk works peer to peer, that is, each participant sends an end-to-end encrypted stream to every other participant and receives one stream per other participant. Bandwidth usage grows with the number of participants.

A single video stream currently uses about 1 Mbit/sec and the total required bandwidth can be calculated as follows:

1 Mbit/s * (participants - 1)

This means that in a call with 5 participants, each has to send and receive about 4 Mbit/sec. Given the asymmetric nature of most typical broadband connections, it's sending video that quickly becomes the bottleneck. Moreover, decoding all those video streams puts a big strain on the system of each participant.

To limit and CPU bandwidth usage, participants can disable video. This will drop the bandwidth use to audio only, about 50 kbit/sec (about 1/20th of the bandwidth of video), eliminating most decoding work. When all participants are on a fast network, a call with 20 people without video could be doable.

Still a call creates a load on the participants' browsers (decoding streams) and on the server as it handles signaling. This, for example, also has consequences for devices that support calls. Mobile device browsers will sooner run out of compute capacity and cause issues to the call. While we continuously work to optimize Talk for performance, there is still work to be done so it is not unlikely that the bottleneck will be there for the time being. We very much welcome help in optimization of calls!

How to have the maximum number of participants in a call

To make sure a call can sustain the largest number of participants, make sure that:

  • each participant has a fast upload and download.
  • each participant has a fast enough system. This means:
    • on a desktop/laptop system, a browser like Firefox or Chrome should be used. The WebRTC implementation in other browsers is often sub-par. On a laptop, the power cord should be plugged in - this often results in better CPU performance.
    • on mobile devices, the Android/iOS apps should be used because mobile browsers will run out of computing power quickly.
  • all participant disables their video streams.

With this setup, 20 users should be possible in a typical setup.

Scaling beyond 5-20 users in a call

Nextcloud offers a partner product, the Talk High Performance Back-end, which deals with this scalability issue by including a Selective Forwarding Unit (SFU). Each participant sends one stream to the SFU which distributes it under the participants. This typically scales to 30-50 or even more active participants. Furthermore, the HPB setup also allows calls with hundreds of passive participants. With this number of participants is only limited by the bandwidth of the SFU setup. This is ideal for one-to-many streaming like webinars or remote teaching lessons.

The HPB also takes care of signaling, decreasing the load of many calls on the Talk server and optional SIP integration so users can dial in to calls by phone.

If you need to use Talk in an enterprise environment, contact our sales team for access to the Talk High Performance Back-end. See our website for more details and pricing.

Development Setup

  1. Simply clone this repository into the apps folder of your Nextcloud development instance.
  2. Run make dev-setup to install the dependencies.
  3. Run make build-js.
  4. Then activate it through the apps management. πŸŽ‰
  5. To build the docs locally, install mkdocs locally: apt install mkdocs mkdocs-bootstrap.

We are also available on our public Talk team conversation, if you want to join the discussion.

API documentation

The API documentation is available here.

Milestones and Branches

Branches

In the Talk app we have one branch per Nextcloud server version. stable* branches of the app should always work with the same branch of the Nextcloud server. This is only off close to releases of the server, to allow easier finishing of features, so we don't have to backport them.

Milestones

  • 10.0.0 - Numeric milestones are settled and waiting for their release or some final polishing
  • πŸ’› Next Minor (20) - The next minor milestone is for issues/PR that go into the next Dot-Release for the given Nextcloud version (in the example 20 - e.g. 10.0.1)
  • πŸ’š Next Major (21) - The next major milestone is for issues/PR that go into the next feature release for the new Major Nextcloud version (as there are Minors for 20, this would be 21)
  • πŸ’” Backlog - The backlog milestone is assigned to all remaining issues

You can always pick a task of any of the milestones and we will help you to get it into the assigned milestone or also an earlier one if time permits. It's just a matter of having an overview and better visibility what we think should be worked on, but it's not exclusive.

Useful tricks for testing

  • Disable camera until reboot: sudo modprobe -r uvcvideo
  • Re-enable camera: sudo modprobe uvcvideo
  • Send fake-stream (audio and video) in Firefox:
    1. Open about:config
    2. Search for fake
    3. Toggle media.navigator.streams.fake to true

Contribution Guidelines

For more information please see the guidelines for contributing to this repository.

GitHub

https://github.com/nextcloud/spreed
Comments
  • 1. TURN-TLS support

    It seems you only support UDP and TCP. However there is another transport mechanism called TURN-TLS, which wraps the whole thing into another TLS layer. This should be the last fallback for ugly company firewalls or so, which do deep package inspection and block non-HTTPS traffic on port 443.

    Reviewed by rugk at 2017-03-13 19:51
  • 2. Add listable scope attribute for conversations

    Related issue

    Fixes https://github.com/nextcloud/spreed/issues/1763

    Description

    Added ability to set a conversation as listable for regular users and/orguest users from the guest app. This means those users will be able to search for those rooms and join them even if they haven't joined before.

    Todos

    • [x] add new conversation property (mostly copy-pasted from read-only)
      • [x] DB migration for new property
      • [x] backend endpoint to set property
      • [x] settings frontend
      • [x] ~~detect guest app in UI~~ => obsolete ?
    • [x] search provider impl
      • [x] impl
    • [x] implement search results code based on listable flags
      • [x] show listable only in search results, not regular list
      • [x] filter by scope (regular user vs guest)
      • [x] backend endpoint "/listed-room"
      • [x] frontend
    • [x] allow joining listable conversations
    • [x] unit tests
      • [x] SystemMessageTest
      • [x] SystemMessage/ListenerTest
      • [x] RoomController, Manager, ParticipantService => cover with integration test ?
      • [x] ~~ListedConversationSearch (if we agree to keep it)~~ removed

    Issues

    • [x] BUG: somehow the dialog always shows "Everyone" by default
    • [ ] sort out todos in LeftSidebar
      • [x] use ConversationsList ?
      • [ ] sort out "no search results" case, currently nothing appears if no results
      • [x] optional: cancel search when continuing to type? => later in https://github.com/nextcloud/spreed/pull/4742
    • [x] implement recognizing guest users (see FIXMEs and TODOs)

    Testing

    • [x] verify that cli + defaults there work correctly
    • [x] test direct join to private listed room when knowing the URL
    • [x] test join via left sidebar
    • [ ] test join via global search result
    • [x] test with guest users from guest app
    • [x] test perms
    • [ ] integration tests (see read-only ones)
      • [x] only moderators can change listable property
      • [x] can join room when knowing URL
        • [x] when listed + private (+ system message visible)
        • [x] when listed + public (+ system message visible)
        • [x] when non-listed + public (+ system message NOT visible)
      • [x] cannot join room when non-listed and private
      • [x] listed rooms of public and private types appear in search results from "/listed-rooms" API, with search term
      • [x] ~~listed rooms of public and private types appear in search results from global search API, with search term~~ => removed

    Open topics

    • [x] clarify if flags concept was correct, see https://github.com/nextcloud/spreed/issues/1763#issuecomment-736021636 => adjusted to be a scope, not bitmask any more
    • [x] unsure if "all" state is a good idea in regards to extensibility => obsolete
    • [x] instead of checkbox, use dropdown for a single-shot choice ? => obsolete
    • [x] USER vs USER_SELF_JOINED, see https://github.com/nextcloud/spreed/pull/4706#issuecomment-739883178
    • [x] add listable field already in creation dialog ?
    • [ ] review discuss the UX concept as the current idea of listable x public/private is already very confusing
    • [ ] might need yet another visual indicator in the list to show listed rooms vs non-listed (for moderators to know).
    • [x] ~~should we forbid joining listable rooms when calling "/active" endpoint if version used is not v3 ?~~ => no
    • [x] password is only asked if not alowed to join a listed room resulting in USER_SELF_JOINED instead of USER, is this ok ?
    • [x] should we remove listed conversations from the global search ? => yes, as discussed. they'd cause too much noise there.
    • [x] should we force passing in a search term in the "listed-room" API ? or listing all is fine on API level ?
    Reviewed by PVince81 at 2020-12-01 11:19
  • 3. A large user base prevents the app from loading properly

    The page hangs while the user list is being built. After a while Firefox reports that the browser is being slowed down and offers to stop loading. If you wait long enough the page eventually loads. Starting a new user search causes the same problem.

    We have around 2000 users in the database

    Steps to reproduce

    1. Start the app

    Expected behaviour

    List of Users should load in left-hand column

    Actual behaviour

    Page hangs

    Browser

    Microphone available: yes

    Camera available: yes

    Operating system: Ubuntu

    Browser name: Firefox

    Browser version: 58

    Spreed app

    Spreed app version: 2.0.2

    Custom TURN server configured: yes Coturn

    Custom STUN server configured: yes Coturn

    Server configuration

    Operating system: CentOS

    Web server: Apache

    Database: MySQL PHP version: 7.0

    Nextcloud Version: 12.0.5

    Reviewed by brtptrs at 2018-01-26 16:03
  • 4. Talk crashes the entire instance when doing public meetings.

    Steps to reproduce

    1. install Talk
    2. start a new Public Meeting
    3. Share Link
    4. Entire instance slows down then crashes

    Expected behaviour

    Calls happen

    Actual behaviour

    Entire instance becomes ultra-slow on any operation. Restarting App container gets the performance back to normal. Netdata does not report any high CPU usage, iowait, or network issue. The intance just borks and ends up throwing a 502 error.

    Browser

    All

    Microphone available: yes Camera available: yes Operating system: Windows Browser name: All

    Spreed app

    Spreed app version: 6.0.2

    Custom TURN server configured: no Custom STUN server configured: no

    Server configuration

    Operating system: Ubuntu Web server: Apache-fpm Database: MySQL PHP version: 7.3 Nextcloud Version: 16.0.3

    working in a docker-container setup

    List of activated apps:

    Enabled:

    • accessibility: 1.2.0
    • activity: 2.9.1
    • admin_audit: 1.6.0
    • apporder: 0.7.1
    • audioplayer: 2.7.2
    • bruteforcesettings: 1.4.0
    • cloud_federation_api: 0.2.0
    • comments: 1.6.0
    • dav: 1.9.2
    • federatedfilesharing: 1.6.0
    • federation: 1.6.0
    • files: 1.11.0
    • files_downloadactivity: 1.5.0
    • files_pdfviewer: 1.5.0
    • files_rightclick: 0.13.0
    • files_sharing: 1.8.0
    • files_texteditor: 2.8.0
    • files_trashbin: 1.6.0
    • files_versions: 1.9.0
    • files_videoplayer: 1.5.0
    • firstrunwizard: 2.5.0
    • gallery: 18.3.0
    • groupfolders: 4.0.4
    • impersonate: 1.3.0
    • logreader: 2.1.0
    • lookup_server_connector: 1.4.0
    • mail: 0.15.1
    • nextcloud_announcements: 1.5.0
    • notes: 3.0.0
    • notifications: 2.4.1
    • oauth2: 1.4.2
    • password_policy: 1.6.0
    • privacy: 1.0.0
    • provisioning_api: 1.6.0
    • quota_warning: 1.5.0
    • radio: 0.6.5
    • recommendations: 0.4.0
    • serverinfo: 1.6.0
    • sharebymail: 1.6.0
    • sharerenamer: 2.6.0
    • socialsharing_email: 1.0.5
    • socialsharing_facebook: 1.0.4
    • spreed: 1.0.6
    • survey_client: 1.4.0
    • systemtags: 1.6.0
    • theming: 1.7.0
    • twofactor_backupcodes: 1.5.0
    • twofactor_nextcloud_notification: 1.1.2
    • twofactor_totp: 2.1.2
    • unsplash: 1.1.3
    • updatenotification: 1.6.0
    • user_ldap: 1.6.0
    • viewer: 1.0.0
    • workflowengine: 1.6.0 Disabled:
    • dropit
    • encryption
    • extract
    • files_ebookreader
    • files_external
    • files_external_gdrive
    • support

    server config:

    { "system": { "memcache.local": "\\OC\\Memcache\\APCu", "apps_paths": [ { "path": "\/var\/www\/html\/apps", "url": "\/apps", "writable": false }, { "path": "\/var\/www\/html\/custom_apps", "url": "\/custom_apps", "writable": true } ], "memcache.distributed": "\\OC\\Memcache\\Redis", "memcache.locking": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "port": 6379 }, "mail_smtpmode": "smtp", "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "465", "mail_smtpsecure": "ssl", "mail_smtpauth": true, "mail_smtpauthtype": "LOGIN", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_domain": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "cloud.bessereau.eu" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "dbtype": "mysql", "version": "16.0.3.0", "overwrite.cli.url": "https:\/\/cloud.bessereau.eu", "overwriteprotocol": "https", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "mysql.utf8mb4": true, "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "instanceid": "***REMOVED SENSITIVE VALUE***", "installed": true, "maintenance": false, "loglevel": 2 }

    Server log (data/nextcloud.log)

    ``` empty ```
    Reviewed by Windyo at 2019-07-17 12:18
  • 5. Can not re-enable Talk on Postgres after installing Spreed on Nextcloud 12

    Steps to reproduce

    1. Try to install Talk

    Expected behaviour

    No error

    Actual behaviour

    An exception occurred while executing 'INSERT INTO "oc_talk_participants" ("userId", "roomId", "lastPing", "sessionId", "participantType") VALUES(?, ?, ?, ?, ?)' with params ["[email protected]", 9, 1494860929, "0", 0]: SQLSTATE[42703]: Undefined column: 7 ERROR: column "userId" of relation "oc_talk_participants" does not exist LINE 1: INSERT INTO "oc_talk_participants" ("userId", "roomId", "las... ^
    

    skarmbild fran 2018-01-11 15 04 38

    Server configuration detail

    Operating system: Linux 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64

    Webserver: Apache/2.4.18 (Ubuntu) (apache2handler)

    Database: pgsql PostgreSQL 9.6.6 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609, 64-bit

    PHP version: 7.0.22-0ubuntu0.16.04.1 Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, Reflection, SPL, session, standard, apache2handler, PDO, xml, calendar, ctype, curl, dom, mbstring, fileinfo, ftp, gd, gettext, iconv, imagick, imap, intl, json, ldap, exif, mcrypt, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, readline, redis, shmop, SimpleXML, smbclient, sockets, sqlite3, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xmlreader, xmlwriter, xsl, zip, libsmbclient, Zend OPcache

    Nextcloud version: 13.0.0 Beta 4 - 13.0.0.9

    Updated from an older Nextcloud/ownCloud or fresh install:

    Where did you install Nextcloud from: unknown

    Signing status

    Array

    List of activated apps
    Enabled:
     - activity: 2.6.1
     - admin_notifications: 1.0.1
     - bruteforcesettings: 1.0.3
     - calendar: 1.5.7
     - comments: 1.3.0
     - contacts: 2.0.1
     - dav: 1.4.6
     - federatedfilesharing: 1.3.1
     - federation: 1.3.0
     - files: 1.8.0
     - files_downloadactivity: 1.2.0
     - files_pdfviewer: 1.2.0
     - files_sharing: 1.5.0
     - files_texteditor: 2.5.1
     - files_trashbin: 1.3.0
     - files_versions: 1.6.0
     - files_videoplayer: 1.2.0
     - firstrunwizard: 2.2.1
     - gallery: 18.0.0
     - impersonate: 1.0.2
     - issuetemplate: 0.3.0
     - logreader: 2.0.0
     - lookup_server_connector: 1.1.0
     - mail: 0.7.7
     - nextcloud_announcements: 1.2.0
     - notes: 2.3.2
     - notifications: 2.1.2
     - oauth2: 1.1.0
     - ocsms: 1.12.2
     - password_policy: 1.3.0
     - previewgenerator: 1.0.9
     - provisioning_api: 1.3.0
     - qownnotesapi: 17.5.0
     - richdocuments: 1.12.39
     - serverinfo: 1.3.0
     - sharebymail: 1.3.0
     - socialsharing_diaspora: 1.0.2
     - socialsharing_email: 1.0.3
     - socialsharing_facebook: 1.0.2
     - socialsharing_googleplus: 1.0.2
     - socialsharing_twitter: 1.0.2
     - survey_client: 1.1.0
     - systemtags: 1.3.0
     - theming: 1.4.1
     - twofactor_backupcodes: 1.2.3
     - twofactor_totp: 1.4.1
     - updatenotification: 1.3.0
     - workflowengine: 1.3.0
    Disabled:
     - admin_audit
     - encryption
     - files_external
     - spreed
     - user_external
     - user_ldap
    
    
    Configuration (config/config.php)
    {
        "updatechecker": false,
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "192.168.4.111",
            "cloud.techandme.se",
            "office.techandme.se"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "overwrite.cli.url": "https:\/\/cloud.techandme.se\/",
        "dbtype": "pgsql",
        "version": "13.0.0.9",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "logtimezone": "Europe\/Stockholm",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpmode": "smtp",
        "mail_smtpauth": 1,
        "mail_smtpport": "587",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauthtype": "LOGIN",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "allowZipDownload": true,
        "session_lifetime": 1800,
        "forcessl": true,
        "logfile": "\/var\/log\/nfs-share\/nextcloud.log",
        "loglevel": 2,
        "memcache.local": "\\OC\\Memcache\\Redis",
        "filelocking.enabled": true,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 0,
            "timeout": 0,
            "dbindex": 0
        },
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "forwarded_for_headers": [
            "HTTP_X_FORWARDED",
            "HTTP_FORWARDED_FOR"
        ],
        "maintenance": false,
        "mail_smtpsecure": "tls",
        "htaccess.RewriteBase": "\/",
        "theme": "",
        "updater.release.channel": "stable",
        "trashbin_retention_obligation": "auto, 30",
        "activity_expire_days": 60
    }
    

    Are you using external storage, if yes which one: local/smb/sftp/...

    Are you using encryption: no

    Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...

    LDAP configuration (delete this part if not used)
    With access to your command line run e.g.:
    sudo -u www-data php occ ldap:show-config
    from within your Nextcloud installation folder
    
    Without access to your command line download the data/owncloud.db to your local
    computer or access your SQL server remotely and run the select query:
    SELECT * FROM `oc_appconfig` WHERE `appid` = 'user_ldap';
    
    
    Eventually replace sensitive data as the name/IP-address of your LDAP server or groups.
    

    Client configuration

    Browser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36

    Operating system:

    Logs

    Browser log
    Insert your webserver log here 
    
    Nextcloud log
    Insert your Nextcloud log here
    
    Error | core | An exception occurred while executing 'INSERT INTO "oc_talk_participants" ("userId", "roomId", "lastPing", "sessionId", "participantType") VALUES(?, ?, ?, ?, ?)' with params ["[email protected]", 9, 1494860929, "0", 0]: SQLSTATE[42703]: Undefined column: 7 ERROR: column "userId" of relation "oc_talk_participants" does not exist LINE 1: INSERT INTO "oc_talk_participants" ("userId", "roomId", "las... ^ | 2018-01-11T15:03:58+0100
    -- | -- | -- | --
    Error | PHP | Undefined index: participantType at /var/www/nextcloud/apps/spreed/lib/Migration/Version2001Date20171026134605.php#227 | 2018-01-11T15:03:58+0100
    Error | core | An exception occurred while executing 'INSERT INTO "oc_talk_participants" ("userId", "roomId", "lastPing", "sessionId", "participantType") VALUES(?, ?, ?, ?, ?)' with params ["[email protected]", 6, 1494860929, "0", 0]: SQLSTATE[42703]: Undefined column: 7 ERROR: column "userId" of relation "oc_talk_participants" does not exist LINE 1: INSERT INTO "oc_talk_participants" ("userId", "roomId", "las... ^ | 2018-01-11T15:03:29+0100
    Error | PHP | Undefined index: participantType at /var/www/nextcloud/apps/spreed/lib/Migration/Version2001Date20171026134605.php#227 | 2018-01-11T15:03:29+0100
    
    
    
    Browser log

    Insert your browser log here, this could for example include:

    a) The javascript console log
    b) The network log
    c) ...
    
    Reviewed by enoch85 at 2018-01-11 14:49
  • 6. Nextcloud Talk is really slow when using HTTP2

    Steps to reproduce

    1. Install Nextcloud Talk App from the appstore in the browser
    2. User A starts a chat with User B, both registered on the same Nextcloud server
    3. Messages take up to 20 seconds to be delivered
    4. Also replies from User B to User A need up to 20 seconds to be delivered

    Expected behaviour

    I expect messages to be delivered nearly instantaneuously

    Actual behaviour

    Nextcloud Talk feels slow and laggy. User A opens a chat with User B in his Browser. There is a constant loading circle around User A, as if he cannot join the session. User B is invited. Chat messages from both users take up to 20 seconds to send/receive.

    Browser

    Microphone available: yes

    Camera available: yes

    Operating system: User A: Linux Mint 19.2 , User B: Android 9

    Browser name: User A: Firefox 69 , User B: Nextcloud Talk Android App v6.0.0.beta3

    Browser version: see above

    Talk app

    Talk app version: 5.0.4

    Custom TURN server configured: no

    **Custom STUN server configured:**no

    Server configuration

    Operating system: Raspbian 8.0 (jessie)

    Web server: Apache

    Database: MariaDB

    PHP version: 7.0.27

    Nextcloud Version: 15.0.11

    List of activated apps:

    Enabled: - accessibility: 1.1.0 - activity: 2.8.2 - announcementcenter: 3.4.1 - bruteforcesettings: 1.4.0 - calendar: 1.6.6 - checksum: 0.4.3 - cloud_federation_api: 0.1.0 - comments: 1.5.0 - contacts: 3.1.3 - dav: 1.8.2 - federatedfilesharing: 1.5.0 - federation: 1.5.0 - files: 1.10.0 - files_pdfviewer: 1.4.0 - files_sharing: 1.7.0 - files_texteditor: 2.7.0 - files_trashbin: 1.5.0 - files_versions: 1.8.0 - files_videoplayer: 1.4.0 - firstrunwizard: 2.4.0 - gallery: 18.2.0 - logreader: 2.0.0 - lookup_server_connector: 1.3.0 - music: 0.10.1 - nextcloud_announcements: 1.4.0 - notes: 3.0.3 - notifications: 2.3.0 - oauth2: 1.3.0 - password_policy: 1.5.0 - provisioning_api: 1.5.0 - quota_warning: 1.4.0 - serverinfo: 1.5.0 - sharebymail: 1.5.0 - spreed: 5.0.4 - support: 1.0.0 - survey_client: 1.3.0 - systemtags: 1.5.0 - tasks: 0.11.3 - theming: 1.6.0 - twofactor_backupcodes: 1.4.1 - twofactor_totp: 2.1.2 - updatenotification: 1.5.0 - workflowengine: 1.5.0 Disabled: - admin_audit - encryption - files_external - user_ldap

    Nextcloud configuration:

    { "system": { "instanceid": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "localhost", "***REMOVED URL***", "***REMOVED URL***" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "overwrite.cli.url": "http:\/\/localhost\/nextcloud", "dbtype": "mysql", "version": "15.0.11.1", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "logtimezone": "UTC", "installed": true, "updater.release.channel": "stable", "maintenance": false, "theme": "", "loglevel": 2, "mail_smtpmode": "smtp", "mail_smtpsecure": "tls", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_domain": "***REMOVED SENSITIVE VALUE***", "mail_smtpauthtype": "LOGIN", "mail_smtpauth": 1, "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "587", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "memcache.local": "\\OC\\Memcache\\APCu" } }

    Server log (data/nextcloud.log)

    not found
    Reviewed by sL5gqj6Q at 2019-09-22 20:42
  • 7. Spreed/Talk possibly not HTTP/2 compatible

    Hi Dev-Team!

    It seems that NC Talk isn't HTTP/2 compatible? It only works for me when i turn off HTTP/2 on my webserver. On any form of client with any browser or the Talk Android app.

    Specs of my server: NC13 RC2 Talk App 3.0.1

    Debian 9.3 (Stretch) Apache 2.4.25 MariaDB 10.1.26 PHP 7.0.27 No special STUN server or so, everything default

    Settings i have to comment out in the sites-available conf-file that it works: <VirtualHost *:443>

    Protocols h2 http/1.1

    H2Push on H2PushPriority * after H2PushPriority text/css before H2PushPriority image/jpeg after 32 H2PushPriority image/png after 32 H2PushPriority application/javascript interleaved ...

    I also tried disabling the different H2Push options or all of them, but no success.

    Reviewed by Schnookeuz at 2018-01-19 18:32
  • 8. Error after installing

    A clean installation with MariaDB (Plesk) NC21 Next step install Talk. Tried to make a Conversion:

    Verursacht durch Doctrine\DBAL\Driver\PDO\Exception: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'xxxxxxxx.oc_talk_sessions' doesn't exist

    the table is not in DB.

    OC Repair did not find any issues

    Reviewed by JanKoIT at 2021-02-25 06:26
  • 9. Discussion: Jitsi Integration

    Jitsi Integration would be very useful since it is a well established, fully open source videoconferencing tool also built on WebRTC + XMPP #826 as described here via Videobridge.

    Would be an excellent integration, which includes a number of improvements requested for Talk. Forum discussion on help.nextcloud here.

    • Easily join or create a registration-free session on https://meet.jit.si/

    Related issues #328 #21 #1056 #2458 #3106 #3151 e2e encryption #37 and external api for sip bridging only offered in MCU #40. Is the MCU itself built with Jitsi?

    Jitsi Integration is already used by the Matrix project #809 and Rocket.chat #753

    Request for Caldav support in Jitsi and request for Webdav support

    Reviewed by sunjam at 2020-03-26 22:02
  • 10. Delete chat messages

    Fix #774

    Todo

    • [x] Delete message content from database
    • [x] Add a system message so the old one can be deleted/updated in stores (web ui and mobile clients)
    • [x] Currently limited to 6h old messages
    • [x] Show a warning if matterbridge is active
    • [x] Write integration tests
    • [x] Add capability
    • [x] Adjust documentation
    • [x] change delete possibility: Only my messages within 6 hours after sending can be deleted
    Reviewed by jakobroehrl at 2020-12-29 13:52
  • 11. Add ability to collapse the grid view

    To be able to focus on the video / screen of the current presenter.

    Fixes https://github.com/nextcloud/spreed/issues/4245

    Todos

    • [x] Fix design/positioning of button
    • [x] Move microphone/video/etc actions to the bottom of the screen when the grid is collapsed
    • [x] Test multiple call modes to make sure it looks fine
    • [x] Test with sidebar view - blocked by https://github.com/nextcloud/server/issues/23445
    Reviewed by PVince81 at 2020-10-13 18:55
  • 12. Bump guzzlehttp/guzzle from 6.3.3 to 6.5.6 in /tests/integration

    Bumps guzzlehttp/guzzle from 6.3.3 to 6.5.6.

    Release notes

    Sourced from guzzlehttp/guzzle's releases.

    Release 6.5.6

    See change log for changes.

    6.5.5

    No release notes provided.

    6.5.4

    No release notes provided.

    6.5.3

    No release notes provided.

    6.5.2

    • idn_to_ascii() fix for old PHP versions #2489

    6.5.1

    • Better defaults for PHP installations with old ICU lib #2454
    • IDN support for redirects #2424

    6.5.0

    No release notes provided.

    6.4.1

    No release notes provided.

    Changelog

    Sourced from guzzlehttp/guzzle's changelog.

    6.5.6 - 2022-05-25

    • Fix cross-domain cookie leakage

    6.5.5 - 2020-06-16

    • Unpin version constraint for symfony/polyfill-intl-idn #2678

    6.5.4 - 2020-05-25

    • Fix various intl icu issues #2626

    6.5.3 - 2020-04-18

    • Use Symfony intl-idn polyfill #2550
    • Remove use of internal functions #2548

    6.5.2 - 2019-12-23

    • idn_to_ascii() fix for old PHP versions #2489

    6.5.1 - 2019-12-21

    • Better defaults for PHP installations with old ICU lib #2454
    • IDN support for redirects #2424

    6.5.0 - 2019-12-07

    • Improvement: Added support for reset internal queue in MockHandler. #2143
    • Improvement: Added support to pass arbitrary options to curl_multi_init. #2287
    • Fix: Gracefully handle passing null to the header option. #2132
    • Fix: RetryMiddleware did not do exponential delay between retries due unit mismatch. #2132 Previously, RetryMiddleware would sleep for 1 millisecond, then 2 milliseconds, then 4 milliseconds. After this change, RetryMiddleware will sleep for 1 second, then 2 seconds, then 4 seconds. Middleware::retry() accepts a second callback parameter to override the default timeouts if needed.
    • Fix: Prevent undefined offset when using array for ssl_key options. #2348
    • Deprecated ClientInterface::VERSION

    6.4.1 - 2019-10-23

    • No guzzle.phar was created in 6.4.0 due expired API token. This release will fix that
    • Added parent::__construct() to FileCookieJar and SessionCookieJar

    6.4.0 - 2019-10-23

    • Improvement: Improved error messages when using curl < 7.21.2 #2108
    • Fix: Test if response is readable before returning a summary in RequestException::getResponseBodySummary() #2081
    • Fix: Add support for GUZZLE_CURL_SELECT_TIMEOUT environment variable #2161
    • Improvement: Added GuzzleHttp\Exception\InvalidArgumentException #2163
    • Improvement: Added GuzzleHttp\_current_time() to use hrtime() if that function exists. #2242

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    Reviewed by dependabot[bot] at 2022-05-25 18:23
  • 13. Connection with other participants may not be established without media permissions when using a VPN and Firefox

    How to use GitHub

    • Please use the πŸ‘ reaction to show that you are affected by the same issue.
    • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
    • Subscribe to receive notifications on status change and new comments.

    WebRTC connections are peer-to-peer (if the HPB is used the HPB acts as one of the peers), so in order to establish a connection the IP addresses of the local peer are gathered and sent to the other peer. Which addresses will be gathered depend on the WebRTC IP Address Handling mode; if media permissions are granted Firefox uses mode 1, but if they were not then it uses mode 2 (and probably 3 and 4 depending also on preferences like media.peerconnection.ice.relay_only).

    It seems that it is not enough to grant media permissions in general (for example, by opening Talk settings or if prompted in the device checker); mode 2 seems to be used if the call is joined without any selected device or without publishing permissions which, in both cases, prevents any sender connection from being created, only receiver ones are used (but this needs to be verified).

    In the past (Firefox 68) a connection could not be established when using two virtual machines (one for the Nextcloud server and the HPB, and another one for the browser) connected by an internal network if the client machine also has a public interface (which is its first interface). In this scenario when trying to connect with Firefox without media permissions (mode 2) Firefox tried to connect using the IP address of the public interface, so it was unable to connect to the server in the other virtual machine. When media permissions were granted (mode 1) it tried to use both the public IP address and the internal IP address, so it successfully connected using the internal IP address.

    This is no longer the case in recent Firefox versions; when the media permissions are denied the single host IP address used now is the one from the internal network. Therefore, the connection works. This shows that how the default route is chosen was changed in recent Firefox versions (probably to adjust to changes in the spec), and it may be based on the route used to reach the web server.

    Nevertheless, it seems that there are still some cases in which a connection can fail using mode 2; see: https://bugzilla.mozilla.org/show_bug.cgi?id=1384265 https://bugzilla.mozilla.org/show_bug.cgi?id=1659672

    Due to this a listener participant may not be able to connect to other participants if the listener is using a VPN (or other specific network setups) and Firefox.

    Reviewed by danxuliu at 2022-05-24 11:23
  • 14. Release todo 12.2.6, 13.0.6 and 14.0.2

    Get branches/versions to release from https://github.com/nextcloud/spreed/milestones

    πŸ’Ί Preparation

    • [x] Check all milestones don't have priority issues still open
      • [x] https://github.com/nextcloud/spreed/milestone/138
      • [x] https://github.com/nextcloud/spreed/milestone/139
      • [x] https://github.com/nextcloud/spreed/milestone/146
    • [x] Check there are no pending backports: https://github.com/nextcloud/spreed/pulls?q=is%3Apr+label%3Abackport-request+is%3Aclosed
    • [x] On major releases create a test package and check if a new development file needs to be added to the packaging exclude list in Makefile
      make appstore
      
    • [ ] Create a PR against master CHANGELOG.md with the changelog of all milestones that are subject to the release
    • [ ] Merge the PR

    πŸš€ v12.2.6

    Start with the oldest version here, so the appstore and github releases show the newest version as "Last release"

    • [ ] Backport the changelog
      • [ ] Remove changelog entries in CHANGELOG.md of higher versions
      • [ ] Bump the version in appinfo/info.xml
    • [ ] Merge the backport
    • [ ] Make sure you pull the latest stable branch:
      git checkout stable22
      git pull origin stable22
      
    • [ ] Clean the dev instance and update all dependencies with the lock file versions:
      make dev-setup
      
    • [ ] Build production javascript:
      make build-js-production
      
    • [ ] Do a quick smoke test by starting a call with:
      • [ ] Chrome
      • [ ] Edge
      • [ ] Firefox
      • [ ] Safari
      • [ ] Android app
      • [ ] iOS app
    • [ ] Build release tarball
      make release version=12.2.6
      
    • [ ] Push the git tag to https://github.com/nextcloud-releases/spreed
      git push releases v12.2.6
      
    • [ ] Mark the tag as a (pre-)release in https://github.com/nextcloud-releases/spreed/releases
      • upload the tarball from build/artifacts/
    • [ ] Mark the tag as a (pre-)release in https://github.com/nextcloud/spreed/releases
      • add the respective CHANGELOG.md section
      • a link to the binary from the releases-repo as description
      • ⚠️ Do not re-upload the binary here.
    • [ ] Upload the app release in the appstore: https://apps.nextcloud.com/developer/apps/releases/new
      • Link to the tarball on https://github.com/nextcloud-releases/spreed/releases
      • Signature that was printed by make release version=12.2.6
    • [ ] Rename milestone πŸ’™ Next Patch (22) to v12.2.6
    • Unless last release of the stable branch:
      • [ ] Create a follow up milestone for πŸ’™ Next Patch (22) (Due date in ~4 weeks)
      • [ ] Move all open PRs and issues from milestone v12.2.6 to πŸ’™ Next Patch (22)
    • [ ] Close the v12.2.6 milestone
    • [ ] In case there were security issues fixed ping the security team

    πŸš€ v13.0.6

    Start with the oldest version here, so the appstore and github releases show the newest version as "Last release"

    • [ ] Backport the changelog
      • [ ] Remove changelog entries in CHANGELOG.md of higher versions
      • [ ] Bump the version in appinfo/info.xml
    • [ ] Merge the backport
    • [ ] Make sure you pull the latest stable branch:
      git checkout stable23
      git pull origin stable23
      
    • [ ] Clean the dev instance and update all dependencies with the lock file versions:
      make dev-setup
      
    • [ ] Build production javascript:
      make build-js-production
      
    • [ ] Do a quick smoke test by starting a call with:
      • [ ] Chrome
      • [ ] Edge
      • [ ] Firefox
      • [ ] Safari
      • [ ] Android app
      • [ ] iOS app
    • [ ] Create tag
      make create-tag version=13.0.6
      
    • [ ] Push the git tag to https://github.com/nextcloud-releases/spreed
      git push releases v13.0.6
      
    • [ ] Mark the tag as a (pre-)release in https://github.com/nextcloud-releases/spreed/releases
    • [ ] Mark the tag as a (pre-)release in https://github.com/nextcloud/spreed/releases
      • add the respective CHANGELOG.md section
      • a link to the binary from the releases-repo as description
      • ⚠️ Do not re-upload the binary here.
    • GitHub Action will do it
    • [ ] Rename milestone πŸ’– Next Patch (23) to v13.0.6
    • Unless last release of the stable branch:
      • [ ] Create a follow up milestone for πŸ’– Next Patch (23) (Due date in ~4 weeks)
      • [ ] Move all open PRs and issues from milestone v13.0.6 to πŸ’– Next Patch (23)
    • [ ] Close the v13.0.6 milestone
    • [ ] In case there were security issues fixed ping the security team

    πŸš€ v14.0.2

    Start with the oldest version here, so the appstore and github releases show the newest version as "Last release"

    • [ ] Backport the changelog
      • [ ] Remove changelog entries in CHANGELOG.md of higher versions
      • [ ] Bump the version in appinfo/info.xml
    • [ ] Merge the backport
    • [ ] Make sure you pull the latest stable branch:
      git checkout stable24
      git pull origin stable24
      
    • [ ] Clean the dev instance and update all dependencies with the lock file versions:
      make dev-setup
      
    • [ ] Build production javascript:
      make build-js-production
      
    • [ ] Do a quick smoke test by starting a call with:
      • [ ] Chrome
      • [ ] Edge
      • [ ] Firefox
      • [ ] Safari
      • [ ] Android app
      • [ ] iOS app
    • [ ] Create tag
      make create-tag version=14.0.2
      
    • [ ] Push the git tag to https://github.com/nextcloud-releases/spreed
      git push releases v14.0.2
      
    • [ ] Mark the tag as a (pre-)release in https://github.com/nextcloud-releases/spreed/releases
    • [ ] Mark the tag as a (pre-)release in https://github.com/nextcloud/spreed/releases
      • add the respective CHANGELOG.md section
      • a link to the binary from the releases-repo as description
      • ⚠️ Do not re-upload the binary here.
    • GitHub Action will do it
    • [ ] Rename milestone πŸ’› Next Patch (24) to v14.0.2
    • Unless last release of the stable branch:
      • [ ] Create a follow up milestone for πŸ’› Next Patch (24) (Due date in ~4 weeks)
      • [ ] Move all open PRs and issues from milestone v14.0.2 to πŸ’› Next Patch (24)
    • [ ] Close the v14.0.2 milestone
    • [ ] In case there were security issues fixed ping the security team
    Reviewed by nickvergessen at 2022-05-23 09:26
Online All in One PHP Video & Audio Downloader From YouTube,Facebook,Twitter,Pinterest,Instagram,MXtakatak,IPL, Tiktok and 1000+ More Sites too

DLhut Contact me If You Find ANy Bug ... PHP Search and Download any Videos from any site. Online All in One Video & Audio Downloader From YouTube,Fac

Nov 8, 2021
Browser Administration for Linux-Based Audio/Video-Player like ODROID or Raspberry Pi
Browser Administration for Linux-Based Audio/Video-Player like ODROID or Raspberry Pi

Browser Administration for Linux-Based Audio/Video-Player like ODROID or Raspberry Pi.

Apr 23, 2022
πŸ“‡A contacts app for Nextcloud. Easily sync contacts from various devices with your Nextcloud and edit them online.
πŸ“‡A contacts app for Nextcloud. Easily sync contacts from various devices with your Nextcloud and edit them online.

Nextcloud Contacts A contacts app for Nextcloud. Easily sync contacts from various devices with your Nextcloud and edit them online. This app only sup

May 24, 2022
Online personal and group chat application using HTML, CSS, JS, PHP,SQL and AJAX that allows users to create own groups, chat
Online personal and group chat application using HTML, CSS, JS, PHP,SQL and AJAX that allows users to create own groups, chat

Online personal and group chat application using HTML, CSS, JS, PHP,SQL and AJAX that allows users to create own groups, chat, make friends, check new notifications and edit functionality. Chat automatically updates using AJAX to allow for real-time chatting with other users collected from the database.

Jan 4, 2022
Koel is a simple web-based personal audio streaming service written in Vue and Laravel
Koel is a simple web-based personal audio streaming service written in Vue and Laravel

Koel (also stylized as koel, with a lowercase k) is a simple web-based personal audio streaming service written in Vue on the client side and Laravel on the server side. Targeting web developers, Koel embraces some of the more modern web technologies – CSS grid, audio, and drag-and-drop API to name a few – to do its job.

May 27, 2022
A simple tool that I share with you. This tool serves to make conversions from text to audio Google Translate.

A simple tool that I share with you. This tool serves to make conversions from text to audio Google Translate. You can download this conversion 100% for free. Good luck.

Oct 25, 2021
nextcloud app that replicates basic gpodder.net api

nextcloud-gpodder Nextcloud app that replicates basic gpodder.net api This app serves as synchronization endpoint for AntennaPod: https://github.com/A

May 22, 2022
mTube is a simple video sharing platform built with Laravel.
mTube is a simple video sharing platform built with Laravel.

mTube is a simple video sharing platform built with Laravel. Create personal channel share videos online with friends and family.

May 15, 2022
This app aims to benchmark several video/live streaming OTT platforms
This app aims to benchmark several video/live streaming OTT platforms

video-platform-bench This app aims to benchmark several video/live streaming OTT platforms based on Encoding Time performance and provide also a "Time

Dec 17, 2021
DLvidHUT Online All in One PHP Video Downloader

DLvidHUT Online All in One PHP Video Downloader API based PHP Video Downloader from YouTube, Instagram, Twitter, Facebook, Tiktok and many more (More Than YouTube DL)

Dec 31, 2021
codecourse.com video downloader.

Codecourse Downloader Download codecourse.com videos. Description Inspired from iamfreee/laracasts-downloader. Download or update your local catalogue

Apr 16, 2022
YouTubeClone - Web Projects Build By Laravel Framework v8 & LiveWire it's Small project to upload video Like Youtube
YouTubeClone - Web Projects Build By Laravel Framework v8 & LiveWire it's Small project to upload video Like Youtube

YouTubeClone YouTubeClone - Web Projects Build By Laravel Framework & LiveWire it's Small project to upload video Like Youtube Use Laravel v8.80.0 Ima

Jan 24, 2022
A Simple Facebook Video Downloader using PHP.

Facebook Video Downloader A simple Facebook Video Downloader using PHP. Feature Download Public Video Download Private Video All Quality How to use Co

Jan 23, 2022
Um chat web feito com HTML, CSS, SASS, JS, PHP e MYSQL

ChatWeb Tecnologias Front-end usadas: Pré processador CSS: Linguagem de programação usada: Projeto hospedado no: Editor de texto usado: Objetivos: Par

May 30, 2021
RepositΓ³rio do sistema de Chat em RealTime utilizando WebSocket com Laravel, Vue.js, Inertia e Tailwind

Antes de mais nada... Deixa a estrelinha no repositΓ³rio Me segue aqui no github Aula desse Projeto no YouTube Esse projeto foi desenvolvido por Gustav

May 17, 2022
PHP, MySQL and JS based web chat application
PHP, MySQL and JS based web chat application

About The Project Chat Application coded in PHP, CSS3 and JS. This is just a project to learn and improve understanding on certain topics. This is not

Apr 18, 2022
Chat Application
Chat Application

The system implements oop in most of its core. The users should login, create accounts, start chats with other users and be able to chat freely with the users .Creation of tables is automated here where two users that want to chat have a table.

May 22, 2022
Single Page Chat Application

About A single page chat application developed in PHP OOP, Mysql and AJAX. Users email (password) [email protected] (abrazzaq) [email protected] (john)

Oct 15, 2021
POC chat avec Mercure et Symfony
POC chat avec Mercure et Symfony

Mise en place du POC Mercure Chat Liste des groupes Formulaire de crΓ©ation de groupe Formulaire d'envoi de messages Le POC Mercure Chat consiste Γ  met

Apr 4, 2022