public void OnUdpReceive(byte[] data, RemoteHyperSocket socket)
            {
                var jsondata = data.AsJObject();
                var jsonObj  = new JObject();

                jsonObj.Add("id", socket.SessionId);
                jsonObj.Add("msg", jsondata["msg"]);
                var buffer = jsonObj.AsBytes();

                if (jsondata["id"].ToString() == "0")
                {
                    foreach (var item in sockets)
                    {
                        if (item.Key != socket.SessionId)
                        {
                            item.Value.SendTcp(buffer);
                        }
                    }
                    socket.SendUdp("(群)成功");
                }
                else
                {
                    if (sockets.TryGetValue(int.Parse(jsondata["id"].ToString()), out var value))
                    {
                        value.SendTcp(buffer);
                        socket.SendUdp("成功");
                    }
                    else
                    {
                        socket.SendUdp("失败");
                    }
                }
            }
 public void StartClient()
 {
     socket = HyperSocket.CreateClient("127.0.0.1", 8888, new ClientListener());
     while (true)
     {
         var id      = Console.ReadLine();
         var str     = Console.ReadLine();
         var jsonObj = new JObject();
         jsonObj.Add("id", int.Parse(id));
         jsonObj.Add("msg", str);
         socket.SendUdp(jsonObj.AsBytes());
     }
 }
Example #3
0
        /// <summary>
        /// 注意此处指描述了JObject的相关操作
        /// JArray没有写入事例,因为它们之间的相关调用都一样
        /// 只需要实现区分json的类型到底是对象还是数组采用不同方式处理即可
        /// </summary>
        public Test_Json()
        {
            // 先简单创建一个json数据
            JObject jobj = new JObject()
            {
                { "id", 100 }, { "content", "hello world" }
            };
            // 通过AsString可以快速转换对象为string类型
            var sobj = jobj.AsString();
            // 通过AsBytes可以快速转换对象为byte[]类型
            // 注意本框架所有案例的byte转码如无特殊说明都为 utf-8 编码
            var bobj = jobj.AsBytes();
            // 通过json字符串转为Json对象
            var jobj2 = sobj.AsJObject();
            // 通过json字节数组转为Json对象
            var jobj3 = bobj.AsJObject();

            Console.WriteLine($"json:{sobj}");
        }