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测试通过。

  • 相关阅读:
    asp.net mvc本地程序集和GAC的程序集冲突解决方法
    SolrCloud-如何在.NET程序中使用
    Application Initialization Module for IIS 7.5
    CentOS 6.5/6.6 安装mysql 5.7 最完整版教程
    NHibernate one-to-one
    “Invalid maximum heap size” when running Maven
    初涉RxAndroid结合Glide实现多图片载入操作
    【案例分析】Linux下怎样查看port占用情况
    js学习之--Bootstrap Modals(模态框)
    sdut2852 小鑫去爬山9dp入门)
  • 原文地址:https://www.cnblogs.com/zxtceq/p/6860014.html
Copyright © 2011-2022 走看看