zoukankan      html  css  js  c++  java
  • Fleck websocket官方事例

    server:

    using Fleck;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    FleckLog.Level = LogLevel.Debug;
    var allSockets = new List<IWebSocketConnection>();
    var server = new WebSocketServer("ws://0.0.0.0:8181");
    server.RestartAfterListenError = true;
    server.Start(socket =>
    {
    socket.OnOpen = () =>
    {
    Console.WriteLine("Open!");
    allSockets.Add(socket);
    };
    socket.OnClose = () =>
    {
    Console.WriteLine("Close!");
    allSockets.Remove(socket);
    };
    socket.OnMessage = message =>
    {
    Console.WriteLine(message);
    allSockets.ToList().ForEach(s => s.Send("Echo: " + message));
    };
    });


    var input = Console.ReadLine();
    while (input != "exit")
    {
    foreach (var socket in allSockets.ToList())
    {
    socket.Send(input);
    }
    input = Console.ReadLine();
    }
    }
    }
    }

    Client:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>websocket client</title>
    <script type="text/javascript">
    var start = function () {
    var inc = document.getElementById('incomming');
    var wsImpl = window.WebSocket || window.MozWebSocket;
    var form = document.getElementById('sendForm');
    var input = document.getElementById('sendText');

    inc.innerHTML += "connecting to server ..<br/>";
    // create a new websocket and connect
    window.ws = new wsImpl('ws://localhost:8181/');
    // when data is comming from the server, this metod is called
    ws.onmessage = function (evt) {
    inc.innerHTML += evt.data + '<br/>';
    };
    // when the connection is established, this method is called
    ws.onopen = function () {
    inc.innerHTML += '.. connection open<br/>';
    };
    // when the connection is closed, this method is called
    ws.onclose = function () {
    inc.innerHTML += '.. connection closed<br/>';
    }

    form.addEventListener('submit', function(e){
    e.preventDefault();
    var val = input.value;
    ws.send(val);
    input.value = "";
    });

    }
    window.onload = start;
    </script>
    </head>
    <body>
    <form id="sendForm">
    <input id="sendText" placeholder="Text to send" />
    </form>
    <pre id="incomming"></pre>
    </body>
    </html>

    在谷歌级firefox测试通过。

  • 相关阅读:
    mysql view
    单点登录原理与简单实现
    复述记忆法
    英语细节锦集(基本时态的构成、元音辅音字母、)
    被动语态 动词的过去分词
    play后面加the不加the如何分辨
    正则表达式入门
    使用 lxml 中的 xpath 高效提取文本与标签属性值
    Android Studio 导入新工程项目
    winfrom Panel 问题
  • 原文地址:https://www.cnblogs.com/dacong/p/6380049.html
Copyright © 2011-2022 走看看