svy*_*vyc 5 c# asp.net webforms signalr webrtc
因为我是新手,所以可能很愚蠢。我想在我的 ASP.NET WebForms 项目中为注册和在线用户包含使用 SignalR 的 WebRTC 视频通话功能。我尝试了一个多星期的时间来搜索在 Webforms 中使用 SignalR 和 WebRTC 的演练/示例,但我总是在 MVC 中找到示例。我们不能在 WebForms 中使用 SignalR 和 WebRTC 吗?如果我们可以使用,那么任何人都可以提供/帮助我提供一个非常简单和基本的演练/示例。
逻辑与signalR 教程非常相似。除了您的消息是 WebRTC 需要通信才能连接的消息。
这是我写的一个例子。它向通过 signalR 集线器连接的所有客户端进行广播。然而,将其设置为仅某些用户与其他用户通信是非常简单的。这是一个更简洁的示例,但它使用 MVC。
客户端完成的基本信令逻辑:
<script type="text/javascript">
var signal = $.connection.webRTCHub;
var ready = false;
//set our client handler
signal.client.broadcastMessage = function (from, message) {
//handle your message that you received
}
//start the hub for long polling so it does not close
$.connection.hub.start({ transport: ['longPolling'] }).done(function () {
ready = true;
});
//only send a message when we are ready
var sendMessage = function (message) {
if (!ready)
setTimeout(sendMessage, 100, message);
else
signal.server.send(name, message);
}
</script>
Run Code Online (Sandbox Code Playgroud)
转发消息的基本集线器类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRWebRTCExample
{
public class WebRTCHub : Hub
{
//executed from javascript side via signal.server.send(name, message);
public void Send(string from, string message)
{
//Code executed client side, aka, makes message available to client
Clients.All.broadcastMessage(from, message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
启动信号器的基本启动类
using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRWebRTCExample.Startup))]
namespace SignalRWebRTCExample
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
Run Code Online (Sandbox Code Playgroud)
免责声明:这非常粗糙,但示例“有效”(流在客户端之间发送)。这段代码没有优化,也不理想。SignalR 中有许多很棒的功能没有被利用,但这些功能可能会使其变得更好、更高效。
| 归档时间: |
|
| 查看次数: |
11530 次 |
| 最近记录: |