Can iOS device send data to Amazon Kinesis Firehose Delivery System ? (the document has no api for iOS) If not, what product of AWS should I use to create a real time database to support iOS devices (as well as browsers).
Amazon Kinesis Streams is a great solution for realtime data streaming. Quote from its description:
Amazon Kinesis Streams enables you to build custom applications that process or analyze streaming data for specialized needs. Amazon Kinesis Streams can continuously capture and store terabytes of data per hour from hundreds of thousands of sources such as website clickstreams, financial transactions, social media feeds, IT logs, and location-tracking events. With Amazon Kinesis Client Library (KCL), you can build Amazon Kinesis Applications and use streaming data to power real-time dashboards, generate alerts, implement dynamic pricing and advertising, and more. You can also emit data from Amazon Kinesis Streams to other AWS services such as Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon Elastic Map Reduce (Amazon EMR), and AWS Lambda.
Amazon Kinesis Firehose is similar to Kinesis Streams. It provides the easiest way to load data into Amazon S3 and Amazon RedShift.
Depending on what your use case is, pick one that fits you.
As for iOS SDK support, the AWS mobile SDK for iOS supports Kinesis Streams. See the developer guide of Writing App Data to a Kinesis Stream. The SDK doesn't support Firehose at the moment. Please check back on AWS Mobile SDK. If you need Javascript support in browsers, then there is AWS SDK for JavaScript in the Browser.
Have a look at Realtime Cloud Storage, an AWS DynamoDB powered cloud database with real-time data-sync between devices. It has iOS, Android, JavaScript (and more) SDKs.
Related
We are implementing Avaya Google Speech integration, where Avaya IVR platform is capturing user's voice and internally using StreamingRecognize API call to send audio stream to Google Cloud Speech (GCS).
We want to know if there is any feature available in GCS to store the audio (voice input) for every request and access it as per demand.
i suggest you use Google Cloud Storage save audio~
google cloud speech only support data logging
i am currently working on a real-time chat app in Unity
and i found those platforms to work with,
Firebase : Can we send Videos efficiently ??
MatriX : https://www.ag-software.net/matrix-xmpp-sdk/
but i am not sure that we can send videos with MatriX ?
i wanted to know from your experience
what is the best way to make real-time chatting (support photos and videos sending) in Unity ?
thanks in advance
You need to find or create services where your clients can connect and:
upload files (photos, videos .etc) and get an public and downloadable URL.
send messages to other connected clients that apart from the string, also contain media metadata (.eg a list of file attachments which are actually URLs uploaded at service (1))
Now, if you cannot find a single service that supports those two then you could try to find two different ones.
here is an example of a chat console application in C#. It contains a web service and client library that is used by the console app. Instead of a console app, it could be used in a Unity app. It does not support file uploading but it can send messages between clients over web sockets.
If you were to create something yourself, instead of finding a 3rd party service, I would recommend node.js/express and socket.io for a server since its quite beginner friendly.
here is a C# client library that can listen to socket.io events from the server. It must be the same that is used in the console application I shared above.
I'm using Firebase with an iOS client app, and I need to stream an audio file from Google Cloud Storage. I know file streaming support exists in the Android SDK with the class: StreamDownloadTask, but I cannot find an equivalent in the iOS SDK.
Best scenario would be able to achieve this without intermediary server functions, so directly between the iOS client and GCS. Is this possible?
If not, I have a Node.js server that I can use. Should I use the createReadStream GCS API function and pipe that to the client? Or is there a better way?
Any advice on the optimal way to create a stream from a GCS audio file to an iOS app would be hugely appreciated!
Firebase employee here
There is not, in fact, any Cloud Storage streaming API for iOS in the same way that there is for Android. If this is important to you, please file a feature request and explain why it's important for your particular case.
I'm creating an iOS app that allows users to:
Log into the app
Record videos
Upload the videos to the cloud
Watch their videos stored in the cloud
What is the best way to design the backend? Normally I would use Parse (which I've used previously), but given that they're shutting down, I need to find a new solution. Keep in mind that I've never done server side programming before.
I was thinking of using a configuration as follows:
AWS DynamoDB
Usernames, passwords, emails, etc.
Video meta data - titles, description, tags, etc.
URL/pointers to video files on AWS S3
AWS S3
Video files
AWS Lambda
Processing of video files - compression, joining/splitting videos, etc.
This is my first time implementing a backend like this, so I was just wondering if this make sense?
I would Suggest You Can Add SQS In There It will help decouple.
SNS For Notification and SES For Emails.
AWS Elastic Transcode to maintain Uniformity (For Video Conversion if Required)
Also I would Suggest Using of AWS CDN So that the end users get Benefit out of it.
Using of AWS Glacier for storage of Retired User Who have Not Used Account Since Long Time (whatever Limit you set) and Then Deleting it Permanently (After Set Time is spent in glacier storage).
I Am stuck with integrating the PubNub WebRTC SDK for iOS application.
Its a JavaScript SDK. How To integrate this with my iOS app.
Thanks in advance.....
This does not directly answer the Objective-C implementation, but it might help with understanding the overall solution and the role that PubNub plays.
Why PubNub? - Signaling
WebRTC is not a standalone API, it needs a signaling service to coordinate communication. Metadata needs to be sent between callers before a connection can be established. This metadata includes information such as:
Session control messages to open and close connections
Error messages
Codecs/Codec settings, bandwidth and media types
Keys to establish a secure connection
Network data such as host IP and port
Once signaling has taken place, video/audio/data is streamed directly between clients, using WebRTC’s PeerConnection API. This peer-to-peer direct connection allows you to stream high-bandwidth robust data, such as video. HTML5Rocks provides a great guide on all things WebRTC (no need to read as it is summarize below).
PubNub makes this signaling incredibly simple, and in addition, gives you the power to do so much more with your WebRTC applications.
What PubNub is Not
PubNub is not a server for WebRTC. A signaling service specifies ICE servers that the video chat can stream over. Public STUN servers provided by google can be used, but they are not very reliable. STUN or TURN servers are required to circumnavigate a firewall, else chat will fail. Many services provide the “total package” of signaling and server in one, that is not PN. Our audience are the people who want to build their own, more custom service.
XirSys
XirSys already have a WebRTC-PubNub demo using rails on their GitHub. They host STUN and TURN servers catering to the needs of WebRTC.
Open Source
There are a few open source STUN and TURN server projects that can be downloaded and hosted with ease:
Amazon AWS VM: Pre-made ready to deploy
RFC5766 TURN: Google Code, TURN server
One-to-many: Instructions on MCU for 1-to-many media servers. Necessary for large group chats and streams with hundreds+ users.
So as you can see, we do not provide audio/video streaming services but if you are building this solution, PubNub is a necessary piece to tie it all together with the signal protocol.
AndroidRTC
And here is an PubNub AndroidRTC example by our interns.