I am developing a chat application based on XMPP/Jabber. How the stanzas in XMPP are implemented in an application?
Thanks in advance.
You'll just have to use an XMPP library for the language you're developing it in. You could generate the stanzas yourself, but that would be re-inventing the wheel.
There's a fairly comprehensive list of libraries here. For JavaScript I recommend Strophe.js. For Java the best is Smack and for Android the best is aSmack (a port of Smack). The most comprehensive and up-to-date for Python is SleekXMPP. The list goes on and on.
I recommend you too use any xmpp client libraries to implement because it helps you to code very faster, implementing the xmpp stanza's requires you to learn core of xmpp.
For all libraries you can visit link
For PHP library you can use JAXL
Related
I've developed my own chat application using XMPP protocol, in this application I want to make a bot user for auto reply.So any suggested open source chat bot framework which can be used for it and what should be the best bot based application architecture?
For Java, many people use Smack. I'd recommend checking that out.
I have an iphone app with rails serving as a backend server.
Now I need to implement a chat functionality using sockets connections.
A lot of examples show you how to implement chat using sockets in browser.
What I need here is how I can implement an application where you create socket server in the rails app , and the client in iphone app which listens to the channel I give them.
I tried using faye(examples given only how to implement client in the browser) and using fayeObjC library for iphone to create client, but am not able to listen to the channel from this library.I know I must be implementing it wrong here.
I'll share my code also here, but first I need to know is there a better solution than this?
Also I appreciate some links to some examples where socket server is in rails and clients are iphone app.
Appreciate any help and mostly need a right direction to implement it.
Update
I tried the faye combination again and it worked.Although still looking for more solutions.
You can check about TCP sockets:
http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server
Chat Application Using Ruby
http://quickblox.com/modules/chat/
http://caydenliew.com/2011/11/ios-mac-os-communication-with-asyncsocket/
http://www.macresearch.org/cocoa-scientists-part-xxix-message
Next link is a comprehensive Networking Guide - Using Internet Sockets
You must keep in mind two major problems to peer-to-peer communications (Chat): reachability and how to receive new messages while your application is in the background (get notifications).
For the last you can use APNS approach: an invisible notification will be pushed to the iPhone indicating that a new message is ready to be read. So your app will make a request for unread messages (what app like WhatsApp does).
Besides TCP sockets you could use websockets (HTTP - so there are no firewall problems).
Best in class - Socket.IO.
Here you will find the wiki https://github.com/learnboost/socket.io/wiki (you will find there an extension for Ruby also)
Here an example for iOS chat client for socket.io & node.js backend
Jabber
Another option: XMPP - "stands for eXtensible Messaging and Presence Protocol. Such a protocol is open-standard and oriented to message exchange (builds and maintains by Jabber community). Message exchange happens near real time, so it is an ideal infrastructure to build chat-like applications. The protocol also implements a mechanism to notify presence information (whether a user is online or not) and the maintenance of a contact list. XMPP is a thorough protocol, which has been adopted also by big companies like Google to build their Instant Messaging service."
Here you will find all about developing a Jabber Client for iOS (enable users to sign in, add buddies, and send messages; how to install and configure a jabber server, create accounts, and interact with the server from an iOS application http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/
I know that SocketRocket by square is a strong native Objective-C library. But it doesn't offer the channel abstraction you seem to be looking for.
If you would consider outsourcing the WebSocket connections then you could use a hosted service like Pusher, who I work for. You can publish messages (trigger events) on channels using the pusher-gem. And you can subscribe to channels and receive messages using one of Pusher's Objective-C libraries.
Other solutions will also have Objective-C libraries and you can find a list of them via this realtime web tech guide.
I'd like to play with the idea of creating a server program that communicates with an iPhone app over socket connections. I've found several guides within Apple's documentation for client side programming (with CFNetwork, NSStream, etc) but I don't know where to begin on programming the server application, or even what language to use, or for that matter, how to deploy and run a server application on my current web hosting package through Go Daddy. A simple instant messenger style application example should get me started, but any advice is appreciated.
if you want to create socket connection is better to use CFNetwork , it has more flexibility for you I already used NSURLConnection but CFNetwork has better performance. this is my steps and how I developed my app :
configuration of server
selection C++ for my server side (service)
start to develop a client-side app for iphone to connect to server using NS classes
but I had some problems in sending and receiving message to and form server . so I changed it to CF classes it works better and faster now.
The easiest way to handle server-to-device communications is to use APNS (Apple Push Notification Services).
Communication in the other direction (device-to-server) can be handled simply with NSUrlConnection.
If you want to write your own socket code for this, well - good luck with that.
Do you want your client application to be able to run on more than one OS? If so, you might want to stay clear of anything Apple specific. Although, if you strictly want to run on iOS, using MusiGenesis' suggestion could save you a ton of time.
I have found that Python and Perl are both pretty great for socket programming. I know that Python has several libraries built in for handling HTTP requests etc. If you want to run your server as a daemon, I found this code very helpful:
http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/
Here is a general python sockets guide:
http://docs.python.org/howto/sockets.html
Good luck.
Is there a framework that supports publishing (pushing) messages from a WCF service (REST or SOAP) to various clients like IPhone, Android and WP7? I'm thinking I can use the WSDualHttpBinding to do dual communication between WCF and WP7. However, I'm assuming WSDualHttpBinding is not supported in the other two platforms since is not a WS-* standard and there's a lot of stuff that WCF does to establish a receiving channel on the client side. Is there any other way to accomplish this? How would I about rolling my own?
I'm thinking about exposing my WCF service as a restful endpoint and implement a COMET style pub/sub and calling it good.
I'm stuck. Any help would be greatly appreciated.
Since you already have a solution for WP7, you could probably use urbanairship.com to handle the pushes for iPhone and Android. I've used them on a prior project with good results. (I don't work for them.)
I found this "Cloud to Device Messaging", C2DM, yesterday and thought it may serve your question:
http://www.makeurownrules.com/archives/category/android
Have you considered using SignalR? It'll fallback gracefully from WebSockets & Server-Side Events through to long polling. There's a mono implementation of the client-side library.
We're successfully using it in a large-scale realtime application and it works a treat. A bit further down this page it details how to communicate with clients from outside the SignalR infrastructure which may be useful if you want to talk to clients from your WCF service.
Cheers,
Dean
I have one application in which all available clients are displayed.Now i want
to implement chatting between them.can it be done with help of bonjour service without
having any other server in between them?any tutorial or sample code for that?
These links might be useful.
http://mobileorchard.com/tutorial-networking-and-bonjour-on-iphone/
you can find source code on https://bitbucket.org/snej/chatty/src
thanks
Game Kit provides a high-level peer-to-peer connectivity API, which you can use for chat.