Reputation: 5274
I am creating an application which needs WebSocket Communication. All I need is a simple WebSocketServer with threading possibilities. I found that SuperWebSocket can satisfy my needs. But, my poor familiarity with C# makes trouble in understanding the code. Can anybody show me How to create a simple server Which should echo the message which is sent from the browser/WebPage. I will be very thankful to the person who shows some good direction||guide||code. I couldn't figure out the usage from their sample codes.
EDIT:
This is the thing which I want to achieve.
If anybody says an exact solution, I will adopt that one.
EDIT: "Robar" already gave the direct answer . This is jsut How I used it .
this.NewSessionConnected += new SessionEventHandler<WebSocketSession>(this.WebSocketServer_NewSessionConnected);
this.NewDataReceived += new SessionEventHandler<WebSocketSession, byte[]>(this.WebSocketServer_NewDataReceived);
this.NewMessageReceived += new SessionEventHandler<WebSocketSession, string>(this.WebSocketServer_NewMessageReceived);
this.SessionClosed += new SessionEventHandler<WebSocketSession, SuperSocket.SocketBase.CloseReason>(this.WebSocketServer_SessionClosed);
Upvotes: 11
Views: 23277
Reputation: 1971
SuperWebSocket
Tutorial for Echo example
Alchemy
If you are open to other C# WebSocket server you could use Alchemy. The server implementation is quite straight forward:
static void Main(string[] args) {
var aServer = new WSServer(8100, IPAddress.Any) {
DefaultOnReceive = new OnEventDelegate(OnReceive),
DefaultOnSend = new OnEventDelegate(OnSend),
DefaultOnConnect = new OnEventDelegate(OnConnect),
DefaultOnConnected = new OnEventDelegate(OnConnected),
DefaultOnDisconnect = new OnEventDelegate(OnDisconnect),
TimeOut = new TimeSpan(0, 5, 0)
};
aServer.Start();
}
static void OnConnected(UserContext aContext) {
Console.WriteLine("Client Connection From : " + aContext.ClientAddress.ToString());
// TODO: send data back
}
As mentioned on their website, they have a simple chat example.
Upvotes: 4
Reputation: 1236
class Program
{
static void Main(string[] args)
{
var listener = new TcpListener(IPAddress.Loopback, 8181);
listener.Start();
using (var client = listener.AcceptTcpClient())
using (var stream = client.GetStream())
using (var reader = new StreamReader(stream))
using (var writer = new StreamWriter(stream))
{
writer.WriteLine("HTTP/1.1 101 Web Socket Protocol Handshake");
writer.WriteLine("Upgrade: WebSocket");
writer.WriteLine("Connection: Upgrade");
writer.WriteLine("WebSocket-Origin: http://localhost:8080");
writer.WriteLine("WebSocket-Location: ws://localhost:8181/websession");
writer.WriteLine("");
}
listener.Stop();
}
}
Upvotes: 1