
电脑坏境不支持websocket(html5),选用webscoket,这个技术是真正可以做到及时通讯。如果不支持他会他会选择长连接或者轮训。
Tcp/Udp 协议 聊天软件最核心的通讯
Socket 双向通讯
首相,我们先创建一个MVC项目;
在安装一个依赖:install-package Microsoft.AspNet.SignalR -version 2.0.3
在创建一个类:
- public class TongxunHub:Hub
- {
- public void Tongxun(string tong)
- {
- Clients.All.receive(tong);
- }
- }
接下来就是页面:
- <script src="~/Content/jquery-1.9.1.min.js"></script>
- <script src="~/Scripts/jquery.signalR-2.0.3.js"></script>
- <script src="~/signalr/hubs"></script>
- <script>
- // 关联集线器(关联谁就能和谁进行通信)
- var chat = $.connection.tongxunHub;
- // 开启客户端服务
- $.connection.hub.start();
- // 提供一个前台方法
- chat.client.receive = function (tong)
- {
- $("#content").append("<li>" + tong + "</li>");
- }
- $(function () {
- $("#tongs").click(function () {
- // 客服端主动调用服务器
- chat.server.tongxun($("#urel").html() + ":" + $("#tong").val());
- $("#tong").val("");
- });
- })
- </script>
- <ul id="content">
- </ul>
- <label id="urel">
- </label>
- <input type="text" id="tong" />
- <input type="button" value="确 定" id="tongs" />
接下来再写一个类基本的通讯就好了:
- using Microsoft.Owin;
- using Owin;
- [assembly: OwinStartupAttribute(typeof(Microsoft.AspNet.SignalR.StockTicker.Startup), "Configuration")]
- namespace Microsoft.AspNet.SignalR.StockTicker
- {
- public static class Startup
- {
- public static void ConfigureSignalR(IAppBuilder app)
- {
- app.MapSignalR();
- }
- public static void Configuration(IAppBuilder app)
- {
- Microsoft.AspNet.SignalR.StockTicker.Startup.ConfigureSignalR(app);
- }
- }
- }
评价