我需要在两个用户之间建立P2P UDP和TCP连接.他们都是NAT的背后.
除了jSTUN之外是否有任何Java解决方案(库),它似乎只能在UDP上运行.而TURN,ICE对于对称NAT问题要好得多.
我使用Webrtc开发了一个p2p视频聊天.我知道需要STUN或TURN服务器来识别NAT后面的公共IP.目前我正在使用谷歌的STUN服务器.
我将应用程序安装在连接到LAN的服务器上,该服务器无法访问Internet,是否需要在服务器中安装STUN服务器才能在局域网内进行Webrtc视频聊天工作?
我收集了这样的文件:
{
_id : "abcd",
name : "Tom",
myArray : [
{
field1 : "",
field2 : ""
}
]
},
{
_id : "efgh",
name : "Jerry"
}
Run Code Online (Sandbox Code Playgroud)
我有一个新的对象myArray.我想编写一个查询来只更新一个文档.
如果查询与文档匹配_id : "abcd",则将新对象推入myArray字段:
{
_id : "abcd",
name : "Tom",
myArray : [
{
field1 : "",
field2 : ""
},
{
// new object
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果查询匹配,则在其中_id : "efgh"创建myArray包含新对象的字段:
{
_id : "efgh",
name : "Jerry"
myArray : …Run Code Online (Sandbox Code Playgroud) 我正在尝试在多层NAT后面建立一个(apache)服务器,以便从Internet访问.
限制:
我尝试过UPnP,但它只适用于1层NAT.
我试图搜索NAT遍历解决方案几个月,但是徒劳无功.
我研究STUN/TURN/ICE,并尝试了pjsip(icedemo.exe +麻木),然而,它的晕眩不能穿过2层NAT.
我试过Mist,Pwnat,但没有运气.而libjingle听起来像是一个用于制作Gtalk扩展的API,我知道......(?)
我也尝试过make VPN/N2N来解决这个问题,但这对公共服务器来说是一个沉重的重载.任何VPN客户端都要求服务器(OldMan服务器)将所有数据包中继到另一个,不是吗?
有什么解决方案可以解决这个问题吗?多层NAT背后的HTTP服务器.
顺便说一句,如果STUN/TURN/ICE有效,我的想法如下,是否可能?
然后我们将不必修改浏览器和Apache.
我可以参考的任何可用资源实现这个?
感谢您的耐心等待
我打算为一个WebRTC应用程序运行我自己的TURN服务 - https://code.google.com/p/coturn/.手册说明了身份验证和凭据:
...
-a, --lt-cred-mech
Use long-term credentials mechanism (this one you need for WebRTC usage). This option can be used with
either flat file user database or PostgreSQL DB or MySQL DB or MongoDB or Redis for user keys storage.
...
Run Code Online (Sandbox Code Playgroud)
此客户端代码示例还建议TURN需要凭据:
// use google's ice servers
var iceServers = [
{ url: 'stun:stun.l.google.com:19302' }
// { url: 'turn:192.158.29.39:3478?transport=udp',
// credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
// username: '28224511:1379330808'
// },
// { url: 'turn:192.158.29.39:3478?transport=tcp',
// credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
// username: '28224511:1379330808' …Run Code Online (Sandbox Code Playgroud) 我正在使用Linux Mint,我正在尝试运行编译sass文件.我已经安装了npm和node.但是当我运行时gulp,它不会编译,并且它不会在public目录中生成css文件.当我运行它时,它不显示任何错误或任何东西.
我应该如何在Laravel 5.2中编译sass文件?谢谢!
Gulpfile.js是:
var elixir = require('laravel-elixir');
/*
|--------------------------------------------------------------------------
| Elixir Asset Management
|--------------------------------------------------------------------------
|
| Elixir provides a clean, fluent API for defining some basic Gulp tasks
| for your Laravel application. By default, we are compiling the Sass
| file for our application, as well as publishing vendor resources.
|
*/
elixir(function(mix) {
mix.sass('app.scss');
});Run Code Online (Sandbox Code Playgroud)
我的app.scss文件是:
// @import "node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
li {
color: red;
}
Updated: When I ran again `npm install` …Run Code Online (Sandbox Code Playgroud)我想从用户那里收集HTML5录音并将它们存储在S3中.我正在使用javasscript资源进行浏览器内的音频和视频录制,使用名为MediaStreamRecorder.js的 WebRTC 来收集录音.我添加了Carrierwave和Fog,并验证我可以成功将音频文件上传到S3.我还成功地使用MediaStreamRecorder.js来收集音频Blob并在音频标签中播放.我最初的想法是直接添加blob URL作为隐藏表单输入的值,并通过表单提交将音频提供给控制器和Carrierwave,就像使用"remote_file_url"提交链接到远程文件而不是上传本地文件.
那失败了.显然,blob URL无法以这种方式处理.
我发现这篇博客文章解释了我如何通过Javascript直接向Carrierwave提交文件.我试图实现这个但失败了.我正在使用Chrome.
我有一个名为"Recording"的上传器:
class RecordingUploader < CarrierWave::Uploader::Base
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
Run Code Online (Sandbox Code Playgroud)
我有一个模型"背诵":
class Recitation < ActiveRecord::Base
belongs_to :lesson
mount_uploader :recording, RecordingUploader
end
Run Code Online (Sandbox Code Playgroud)
路线反映Recitation嵌套在名为Lesson的模型中:
resources :lessons do
resources :parts
resources :recitations
end
Run Code Online (Sandbox Code Playgroud)
我在Recitation控制器中的new和create方法:
def new
@lesson = Lesson.find(params[:lesson_id])
@recitation = Recitation.new
end
def create
@lesson = Lesson.find(params[:lesson_id])
@recitation = @lesson.recitations.new(recitation_params)
if @recitation.save
redirect_to thanks_path
else
flash[:error] = "There was a problem saving your recording."
render :new
end
end
Run Code Online (Sandbox Code Playgroud)
最后我尝试通过AJAX将blob传递给控制器.
function onMediaSuccess(stream) { …Run Code Online (Sandbox Code Playgroud) 我正在试验WebRTC.当网络状态发生变化时,现有呼叫会发生什么?例如,蜂窝网络上的客户端向wifi移动.由于在这些情况下不会出现呼叫掉线,应采取哪些措施来提供无缝呼叫体验?
db.col.insertMany(
[
{
"_id" : "tt0084726",
"title" : "Star Trek II: The Wrath of Khan",
"year" : 1982,
"type" : "movie"
},
{
"_id" : "tt0796366",
"title" : "Star Trek",
"year" : 2009,
"type" : "movie"
},
{
"_id" : "tt0084726",
"title" : "Star Trek II: The Wrath of Khan",
"year" : 1982,
"type" : "movie"
}
]
);
Run Code Online (Sandbox Code Playgroud)
操作系统:LinuxMint 17.3 Rosa MongoDB:db版本v2.6.12
我正在参加MongoDB大学的课程.当我将上述命令输入mongo shell时,会出现错误:TypeError: Property 'insertMany' of object test.col is not a function
如何解决?我已经阅读了文档,但仍然失败了.
我需要在两个用户之间建立P2P UDP和TCP连接.他们都是NAT的背后.一点研究让我想到了STUN,TURN和ICE.
有没有支持相同的开源iOS(库)?
iPhone中的FaceTime也使用ICE,STUN,TURN到NAT遍历,iOS SDK也暴露了这样的API吗?
我在resiprocate源代码(www.resiprocate.org)中找到了nICRr代码,我可以在Mac OS X上测试STUN部分.有没有人尝试过使用相同的iOS 4.0或更高版本?
谢谢,罗德尼
根据Vue文档,我应该能够将v-if条件添加到<template>标记:
<template v-if="false">
<div>Invisible text</div>
</template>
Run Code Online (Sandbox Code Playgroud)
但是这不会隐藏元素,但是当它添加到子元素时它确实有效:
<template>
<div v-if="false">Invisible text</div>
</template>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我将模板包含在另一个.vue文件中:
<template>
<div id="app">
<H1 class= "main-title">Title</H1>
<span class="components">
<testtemplate></testtemplate>
</span>
</div>
</template>
Run Code Online (Sandbox Code Playgroud) 我正在使用 node.js 服务器发送 iceCandidates 并通过对等连接 (javascript) 连接两台计算机。我想使用 TURN-server 作为 iceServer,但我没有,所以我想在我的服务器上制作 TURN-server。这怎么可能?