C#开源之WebSocket客户端和服务器端

(23) 2024-02-27 14:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说C#开源之WebSocket客户端和服务器端,希望能够帮助你!!!。

描述

C#实现基于WebSocket协议的客户端和服务器源码。

参数

来源:GitHub(4600) https://github.com/sta/websocket-sharp

协议:MIT

官网:http://sta.github.io/websocket-sharp/

Nuget:WebSocketSharp

示例

WebSocket Client实现代码,支持Nuget包安装

using System;
using WebSocketSharp;

namespace Example
{
  public class Program
  {
    public static void Main (string[] args)
    {
      using (var ws = new WebSocket ("ws://dragonsnest.far/Laputa")) {
        ws.OnMessage += (sender, e) =>
            Console.WriteLine ("Laputa says: " + e.Data);

        ws.Connect ();
        ws.Send ("BALUS");
        Console.ReadKey (true);
      }
    }
  }
}

注意其中几个事件

OnOpen,该方法在建立连接时触发

ws.OnOpen += (sender, e) => {
    ...
};

OnMessage,在接收消息时触发,接收的消息内容支持字符串和二进制,e.IsText或者e.IsBinary来判断。

ws.OnMessage += (sender, e) => {
    ...
};

WebSocket Server实现代码

using System;
using WebSocketSharp;
using WebSocketSharp.Server;

namespace Example
{
  public class Laputa : WebSocketBehavior
  {
    protected override void OnMessage (MessageEventArgs e)
    {
      var msg = e.Data == "BALUS"
                ? "I've been balused already..."
                : "I'm not available now.";

      Send (msg);
    }
  }

  public class Program
  {
    public static void Main (string[] args)
    {
      var wssv = new WebSocketServer ("ws://dragonsnest.far");
      wssv.AddWebSocketService<Laputa> ("/Laputa");
      wssv.Start ();
      Console.ReadKey (true);
      wssv.Stop ();
    }
  }
}

结尾

整个WebSocket通讯只需要几行代码即可实现。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复