利用WebSocketSharp开源websocket-sharp.clone库实现websocket服务端
建一个wpf测试工程。
using WebSocketSharp;
using WebSocketSharp.Server;
public class ServerSharp : WebSocketBehavior{int count = 0;protected override Task OnOpen(){count++;Task tk = new Task(() => {});tk.Start();return tk;}protected override Task OnClose(CloseEventArgs e){Task tk = new Task(() => {});tk.Start();return tk;}protected override Task OnMessage(MessageEventArgs e){Task tk = new Task(() => {Send("receive succ:" + e.Text.ReadToEnd());});tk.Start();return tk;}}
启动服务端:
/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}WebSocketServer wssv;void StartWebSocket(string Ip){wssv = new WebSocketServer(IPAddress.Parse(this.textBox.Text), 9999);wssv.AddWebSocketService<ServerSharp>("/Server");wssv.Start();if (wssv.IsListening){listBox.Items.Add(string.Format("Listening on port {0}, and providing WebSocket services:", wssv.Port));foreach (var path in wssv.WebSocketServices.Paths)listBox.Items.Add(string.Format("- {0}", path));}}private void button_Click(object sender, RoutedEventArgs e){StartWebSocket(this.textBox.Text);}//发送private void button1_Click(object sender, RoutedEventArgs e){//wssv wssv.WebSocketServices.Broadcast(this.textBox1.Text);}}