我开始学习 WebRTC 并在此处使用复制/粘贴有一个工作原型:https : //github.com/aerik/webrtc(该原型旨在在两个浏览器窗口中运行,与许多其他同时运行的示例不同)在一个窗口)
我知道 WebRTC 是点对点的,我需要为每组对等点建立连接。但是,我开始考虑发信号(还没有代码),我想知道“要约”。在我的原型中,我看到多次单击“创建报价”会产生相同的字符串。所以,如果有客户端 A,并连接到客户端 B 和 C,看起来我会向他们发送相同的“报价”。如果那是正确的,它使发送信号的第一步变得容易 - 客户端 A 将始终具有相同的报价,而我只需要收集来自已连接对等方的响应。
这是正确的理解吗?
我们有一个基于SQL Server的中型应用程序没有定义索引.甚至没有在标识列上.我建议我们适度昂贵的应用程序顾问,通过在适当的字段上创建一些索引,我们可能会获得更好的性能(特别是当我们的数据库增长时),他说:
"索引将显着影响应用程序的其他领域,客户不应在任何情况下创建它们."
有人听说过这样的事吗?是否有人不应该创建任何索引?我可以看到这个应用程序没什么特别的 - 它有int标识列,然后是很多字符串列,一堆关系表,但没有什么特别的或奇怪的,我可以看到.
谢谢!
[编辑:标识列没有使用"身份规范",他们似乎由程序设定,寻找与Management Studio中的数据库,我能找到NO索引...]
关注:在一次会议上,我询问了生产这种产品的公司的首席执行官(和首席架构师),他的回答是,他们认为对于中小型部署,与维护索引相关的开销会对整体用户产生更大的负面影响.经验(应用程序执行大量写入)比索引的好处会抵消,但对于大型数据库,它们确实创建了索引.这位技术支持人员过于热心,对他的回答毫无帮助.谜团已揭开.
我在工作中继承了一堆程序,原作者使用Microsoft Visual Studio的数据组件(数据集,数据适配器等)在设计环境中(从工具箱或使用向导)创建.这产生了一些半定制的(专用于数据)类,并且还将SQL代码放入设计器生成的类中.
这不是我习惯做事的方式(我总是喜欢明确地拥有数据集,或者创建我自己的专用类来保存数据并隐藏底层数据层的复杂性).
有没有人有一些很好的见解或链接讨论使用Visual Studio数据组件的利弊?
(旁注,原作者也没有非常彻底地评论,并且根据我的口味,写了一些不太容易解释的"聪明"代码,所以我不倾向于认为他比我更了解.)
我想另一种提问方式是:使用数据设计器组件是否会产生"遵循最佳实践"且可维护的代码等?对我来说似乎不是这样,但我正在寻找专家的意见.
[编辑:增加了一些澄清意图的背景]
如果我是正确的(我看起来像是)关于使用最适合原型等的设计师组件,那么我将不得不与原始开发人员和我的经理进行一些艰难的对话.所以我想更多地强调"讨论利弊的链接"我的问题的一部分......我正在寻找一些可以用来支持我声称这种风格的开发/代码不是最多的东西适合生产使用......谢谢.
与此问题类似:
将Dictionary <string,string>转换为单个聚合字符串表示的最佳方法?
但是我想忽略Dictionary中的类型,因为我打算调用每个键和值的ToString()方法.
我认为它不应该是一个问题,但我无法弄清楚如何传入一个无类型的字典,而不仅仅是把它作为对象...任何想法?
[编辑]添加工作代码片段:这是有效的 - 感谢twoflower
public string DumpDictionary<TKey, TElement>(IDictionary<TKey, TElement> dictionary)
{
StringBuilder sb = new StringBuilder();
foreach (var v in dictionary)
{
sb.AppendLine(v.Key.ToString() + ":" + v.Value.ToString());
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
Android:更改默认主页应用程序
我想创建一个像" Home Switcher "这样的程序,可以通过编程方式设置默认启动器.我还没有编写代码,但可以找出如何找到可用的启动器应用程序,但我不知道如何以编程方式设置默认值.谁能指出我正确的方向?
我有一些正在运行的测试代码,用于尝试学习 WebRTC 的基础知识。即使我使用 TURN 服务器(一侧显示“正在检查”状态,另一侧显示“失败”状态),此测试代码也可在 LAN 上运行,但不能通过 Internet 运行。我可以看到 SDP 中有 ice 候选者,所以我不需要明确发送它们(对吗?)。
这会将大量调试信息写入控制台,因此我可以告诉我的信令服务器正在工作。我被卡住了 - 我需要在我的代码中做些什么不同的事情才能让它在互联网上工作?
顺便说一句,我在我的测试计算机之间运行了其他 WebRTC 演示脚本,并且它们确实有效(例如 opentokrtc.ocom)
<html>
<head>
<title>test</title>
<script type="text/javascript">
var curInvite = null;
//create an invitation to connect and post to signalling server
function CreateInvite(){
//function to run upon receiving a response
var postRespFunc = function(txt){
console.log("Posted offer and received " + txt);
var invite = txt;
curInvite = invite;
document.getElementById("inviteId").innerHTML = invite;
//then poll for answer...
var pollFunc = function(){
GetRequest("answered?"+invite,function(txt){
if(txt){
//assume …
Run Code Online (Sandbox Code Playgroud) 我有一张桌子有时比div
里面宽- 这会导致我的桌子越过div
边界.
我怎样才能div
伸展所以div
边框总是在桌子周围?
如果缩小结果窗格,此小提示将显示此问题.
div#wrapper{
margin: 2em;
padding: 1em;
border: 1px solid black;
width: auto;
}
Run Code Online (Sandbox Code Playgroud)
<div id="wrapper">
<table border="1">
<tr>
<td>stuff</td>
<td>stuff</td>
<td>stuff</td>
<td>stuff</td>
<td>stuff</td>
<td>stuff</td>
<td>stuff</td>
<td>stuff</td>
<td>more stuff</td>
<td>more stuff</td>
<td>more stuff</td>
<td>more stuff</td>
<td>more stuff</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud) 我刚刚(在 Alpha 版中)在 Play 商店中发布了一个 SMS 转发应用程序。当我单击“权限:查看详细信息”时,它会显示“此应用可以访问:?其他”。这是为什么?我能做些什么来修复它(所以它仍然可以正常工作,作为 SMS 转发器,但说的是比“?其他”更有用的东西)?
以下是我的清单中的权限:
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我需要使用两个自定义文件读取器类之一; 一个读取固定宽度文件,一个读取CSV文件.这些读者中的每一个都具有某些属性等.我想使用工厂方法并拥有私有构造函数,因此我可以在创建对象之前运行一些业务逻辑.
编辑:更好的例子
//simple class with it's own factory method
class Class1
{
private Class1()
{
//constructor code
}
public static Class1 CreateClass()
{
//do some business logic here
return new Class1();
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是定义一个基类,然后覆盖工厂.我想问题是静态类属于基类CLASS,所以永远不能被覆盖,即使它们是继承的.这段代码有效
public class BaseClass
{
//some common properties / fields here
public string SomeField;
//some common methods here
//empty constructor
protected BaseClass() { }
//cannot have a virtual static class!
//Would really like to make this a virtual method
public static BaseClass CreateClass()
{
throw new …
Run Code Online (Sandbox Code Playgroud) android ×2
c# ×2
javascript ×2
webrtc ×2
css ×1
dictionary ×1
factory ×1
google-play ×1
html-table ×1
indexing ×1
launcher ×1
sql-server ×1
static ×1
stringify ×1