websocket 学习


一、服务器端开发,

 public class SocketServer
    {
        static void Main()
        {
            try
            {
                FleckLog.Level = LogLevel.Debug;
                var allSockets = new List();
          //读取配置文件,值格式 ws://192.168.100.100:1234
string realNameUrl = Appsettings.app(new string[] { "WebApi", "RealNameUrl" }); var server = new WebSocketServer(realNameUrl); 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(); } } catch (Exception err) { FleckLog.Error(err.ToString()); } } }

二、客户端测试。最简单方法:

打开chrome——>F12——>输入如下代码:——>回车。如果是控制台,这时控制台中会显示出发送的内容:“websocekt测试”

ws = new WebSocket("ws://192.168.100.100:1234");
ws.onopen = function() { 
    ws.send('websocekt测试'); 
};
ws.onmessage = function(e) {
    alert("收到服务端的消息:" + e.data);
};

三、用静态html页面测试,代码如下:

"-//W3C//DTD HTML 4.0 Transitional//EN">


    websocket client
    


    
"sendForm"> "sendText" placeholder="Text to send" />
"incomming">

 重点分享:

如果想用域名访问,必须要发布成IIS,如iis的域名为:test.xxxx-zhongguo.com:7890,服务器端启动,还是用IP 如:192.168.100.100:1234

客户端访问就可以用 test.xxxx-zhongguo.com:1234

代码参考:https://www.cnblogs.com/swjian/p/10553689.html