Как создать сервер WebSocket с помощью SuperWebSocket
Я создаю приложение, которое требует WebSocket Communication. Все, что мне нужно, это простой WebSocketServer с возможностями потоковой передачи. Я обнаружил, что SuperWebSocket может удовлетворить мои потребности. Но мое плохое знакомство с С# затрудняет понимание кода. Может ли кто-нибудь показать мне, как создать простой сервер, который должен отображать сообщение, которое отправляется из браузера/веб-страницы. Я буду очень благодарен человеку, который показывает хорошее руководство. Я не мог понять использование их образцов кода.
EDIT: Это то, чего я хочу достичь. ![enter image description here]()
Если кто-то скажет точное решение, я приму его.
EDIT: "Робар" уже дал прямой ответ. Это jsut Как я его использовал.
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);
Ответы
Ответ 1
SuperWebSocket
Учебник для Пример эха
Алхимия
Если вы открыты для другого сервера С# WebSocket, вы можете использовать Alchemy.
Реализация сервера довольно проста:
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
}
Как упоминалось на их веб-сайте, у них есть простой пример чата.
Ответ 2
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();
}
}