Chat (XMPP) messaging platform - c#

I would like to encapsulate different messaging platforms (Google Talk, Facebook Chat) for my users - of course it will be using XMPP.
I will be writing the server in C# and the client in Flex (AIR).
Do I need to keep track of all the message in the server?
What would be the best practice for notifying users about a new message?
Polling?
Push? (How does C# works with Flex)
Thank you in advance...

You don't have to write a server at all. Your Flex (AIR) client has to connect to Facebooks or Googles XMPP server only. I suggest to pick a client library from here: http://xmpp.org/xmpp-software/libraries/ and start coding.

Related

How to create WPF internet chat application

I want to create a simple chat application using C# and WPF that uses internet to connect between clients and server. I found a lot of tutorials for chat apps, but they all work over local network, I am confused and don't know to what technology to use to create my app. Could anybody point me in the right direction?
You really have a lot of directions you can go for this. The simplest is a simple plain sockets client-server star topography. This will work over both a public and private network, but you will encounter data theft as the data will be unencrypted.
For any internet application, you really should use the SslStream to secure your communications between the server and client. This allows you to specify TLS1.2 as your transport which will provide great security. You can consume that server stream from WPF via standard Sockets or from Windows Store Apps using StreamSockets. Mind you, you will need to learn a LOT about how SSL keys work and configuring the connections in code.

Communication between C# application and iPhone app

I googled now a few days and didn't find a good solution for me (maybe I am too bad...).
I have an C# application which have data what the iphone app wants.
So I am logging in on my iPhone app and the C# app should send data.
So I need a central server who handles the requests. But this is my problem I dont find a good solution.
If it would be in a local network I would do this with sockets. But I want to do this over the internet.
I read about php socket server.
But if I have a server with a static ip, can I run a self written C# socket sever on a vm?
Thanks for help!
You don't say how much data you want to transfer. If it's not that much, you might consider a message queue. You can set up a free account at http://www.iron.io/mq to test with. Their free account is pretty generous, so depending on your needs, it might work as a permanent solution as well.

is there a way to let the web server (not the Client which is the trivial case) send a messege to a Client application?

I'm about to start to develop and application in C# but I realized that I haven't the enough knowledge to develop it yet :S.
The thing's that I need to find out a way to let the Web server comunicate with my application, i.e., in short, is there a way to let the web server (not the Client which is the trivial case) send a messege to a Client application?
I know that I way to solve it's to make Client applications periodically send messages to the web server but that's not what I want 'cause polling generates overhead
Sorry about my english! I'm not a native speaker.
Thanks in advance!
Generally this type of interaction is achieved with Comet or WebSockets - I'm not sure how your app will be communicating with the server, but I would bet you can do what you're trying to do using one of those.
You could implement a WCF service in your client that could listen for a connection from the server (or anything else). The server can communicate with the client as easy as calling the API.
Getting started with WCF is really easy using the wizards in VS.
Here is a link that talks about using WCF with ASP, but it can be used outside of asp as well.
It seems like you meant "push" messaging, the challenge around this is for the server to keep track of the lost of clients and manage who should recieve which message.
If you want to get it done with minimal overhead you can check out the Amazon Simple Notification Service.
SNS is a cloud-based messaging and notification service hosted and managed for you, SNS is based on a topic/subscriber model and you set it up via a few simple API calls, it is metered but quite inexpensive for the most part.
edit: For C# Libraries and frameworks to do it yourself, I am not an expert in the C# world so I think other answerers will know it better.
Disclosure: I work at amazon so I am naturally inclined to like their product

Is there some kind of API for MSN protocol (for using in C# asp.net application)?

i was wandering, is there some kind of .NET API for MSN protocol, so I can make chat application which uses Windows Live Messenger data and servers.
If not than I will use .Net Sockets, TCP + UDP, but this is not very easy task, time consuming, and also ... you need strong server to support Chat Server (used to push and redirect messages to connected users)
Thanks all in advance,
Cheers!
There is MSNPSharp, a third-party open source .NET wrapper for the MSN protocol written in C#.

Is it possible Connecting and sending message through GSM modem using asp.net?

I ve developed a c# winforms application for sending sms by using this article of Sending sms using GSM It works pretty well... Now i want to send sms using GSM communication (ie) a mobile phone connected to PC and i have detect it and send sms using it in asp.net.....
Is it possible Connecting and sending message through GSM modem using asp.net?
Of course you can! The only point is that, as ASP.NET is a server side programming, the GSM modem will have to be connected to the server running the app. Even, your already developed code can be reused. Put that code as an assembly with public interface to get the functionalities. Include it in the ASP.NET app and you can send SMS.
There should be no difference if your app is a regular console/winforms app or whether it's an ASP.NET app.
You would just want to be a bit more security-conscious if anyone on the internet is able to connect to your website and send messages...
Yes. You could create a Windows service that contains the logic for accessing the GSM modem and sending SMS messages. This service can then be access from your ASP.NET web application.
There are lots of articles out there on running a WCF service as a Windows service, here's one on MSDN, Hosting and Consuming WCF Services.
But on second thought, setting up a service may be overkill here. You could use your library from within your app just as fine.
You can do it as mentioned by Kangkan in his answer. You will need to connect your modem to the server which is less feasible and very much less recommended to do so. The best option you can have is to subscribe to a third-party SMS gateway and send SMS through their HTTP apis. There are many such providers available that provide this kindaa service. Just google them and you'll find the one that best suits your needs.

Categories

Resources