当前位置:   article > 正文

C# 使用Fleck创建WebSocket服务器_fleck.websocketserver

fleck.websocketserver

目录

写在前面

代码实现

服务端代码

客户端代码

调用示例


写在前面

Fleck 是 C# 实现的 WebSocket 服务器,通过 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后浏览器和服务器之间就形成了一条快速通道;两者之间就可以直接双工数据通讯,改变了原有的B/S模式。整个实现过程的代码非常简单,分为服务端和客户端两部分,服务端用控制台,客户端只有一个内嵌js的html文件。

老规矩用NuGet安装Fleck类库。

代码实现

服务端代码

  1. using Fleck;
  2. public class WebSocketServerDemo
  3. {
  4. public static void Main(string[] args)
  5. {
  6. var server = new WebSocketServer("ws://127.0.0.1:7181");
  7. server.Start(socket =>
  8. {
  9. socket.OnOpen = () => Console.WriteLine("Open!");
  10. socket.OnClose = () => Console.WriteLine("Close!");
  11. socket.OnMessage = message =>
  12. {
  13. Console.WriteLine(message);
  14. socket.Send(message + " from server");
  15. };
  16. });
  17. Console.WriteLine("Server Started");
  18. Console.ReadLine();
  19. }
  20. }

客户端代码

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>WebSocket Demo</title>
  6. <script type="text/javascript">
  7. var start = function () {
  8. var inc = document.getElementById('incomming');
  9. var wsImpl = window.WebSocket || window.MozWebSocket;
  10. var form = document.getElementById('sendForm');
  11. var input = document.getElementById('sendText');
  12. inc.innerHTML += "connecting to server ...<br/>";
  13. // 创建新的websocket新连接端口为7181
  14. window.ws = new wsImpl('ws://127.0.0.1:7181/');
  15. // 当数据从服务器服务中心发送后,继续向下运行过程
  16. ws.onmessage = function (evt) {
  17. inc.innerHTML += evt.data + '<br/>';
  18. };
  19. // 当链接对象找到服务端成功对接后,提示正常打开
  20. ws.onopen = function () {
  21. inc.innerHTML += 'connection opened<br/>';
  22. };
  23. // 当链接对象未找找到服务端成功对接后,提示打开失败,别切单项关闭
  24. ws.onclose = function () {
  25. inc.innerHTML += 'connection closed<br/>';
  26. }
  27. form.addEventListener('submit', function (e) {
  28. e.preventDefault();
  29. var val = input.value;
  30. ws.send(val);
  31. input.value = "";
  32. });
  33. }
  34. window.onload = start;
  35. </script>
  36. </head>
  37. <body>
  38. <form id="sendForm">
  39. <input id="sendText" placeholder="Text to send" />
  40. </form>
  41. <pre id="incomming"></pre>
  42. </body>
  43. </html>

调用示例

 先启动服务端,建立监听,等待客户端的连接。

 

用浏览器打开html 文件,这边用的是Chrome:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/164643
推荐阅读
相关标签
  

闽ICP备14008679号