因为我是新手,所以可能没用了。我希望在我的ASP.NET WebForms项目中使用SignalR为注册和在线用户提供WebRTC视频调用功能。我试图在Webforms中搜索使用SignalR和WebRTC的漫游/示例超过一周,但我总是在MVC中找到示例。我们不能在WebForms中使用SignalR和WebRTC吗?如果我们可以使用,那么任何人都可以提供/帮助我一个非常简单和基本的演练/示例。
答案 0 :(得分:2)
逻辑与signalR tutorial非常相似。除了您的消息是WebRTC需要通信以进行连接的消息。
Here is an example I wrote up。它通过signalR集线器向所有连接的客户端进行广播。但是,将其设置为仅某些用户与其他用户通信的位置非常简单。 Here is a more flushed out example but it uses 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>
转发消息的基本集线器类
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);
}
}
}
启动信号器的基本启动课
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();
}
}
}
免责声明:这是非常粗略的,但示例&#34;工作&#34;(流在客户端之间发送)。此代码未经过优化且不理想。 SignalR中有许多令人敬畏的功能未被利用,可能会使它更好,更有效。