小编Jos*_*ala的帖子

WebRTC 视频会议(多对多)

我即将使用 webRTC+socket.io+node.js 构建一个视频会议系统,所以我已经阅读了 Simon Pietro Romano 的《Real Timecommunications with webRTC》这本书作为起点,我已经读完了,我要跑了这个系统超过 100 Mbps 本地网络,所以我将使用网状网络拓扑,因为带宽在这里不是问题,我不想关注这个,我只是有一个关于与许多用户合作的简单问题,特别是关于使用这些功能:

var pc // PeerConnection Object

pc.onaddstream = ...//for receiving stream from remote party
pc.setRemoteDescription()...//for setting .sdp file from remote party
Run Code Online (Sandbox Code Playgroud)

我知道我必须在每个对等点上建立点对点连接,但是假设我有 3 个用户:A、B 和 C。

A 将成为房间发起者,然后 B 加入房间,这里 A 向 B 发送报价并收到 B 的答复,A setRemoteDescription(answerB) 和 B setRemoteDescription(offerA),但是当 C 加入房间时,A 和 B将是它的发起者,所以他们都会向 C 发送报价,C 将向他们发送答案,这是我的困惑:

当 C 第一次收到 A 的报价时,这是 C setRemoteDescription(offerA),但是当收到 B 的报价时,这是 C setRemoteDescription(offerB),我在这里设置了一个新值并丢失了 A 的先前报价,这个过程只是临时?,是不是 C 不再需要 A 报价了?,我知道这个 sdp 文件只包含 webbrowser 媒体信息。我对 …

javascript node.js socket.io webrtc

5
推荐指数
1
解决办法
1960
查看次数

Android DatePickerDialog Api 23 (Android 6)

我正在触发一个 DatePickerDialog,它工作并显示良好,直到 api 22 (Android 5.1),我在其上设置混合和最大日期(最小 = 当前日期,最大 = 从当前日期开始的 1 个月),但它只是显示当前日期在 Api 23 中,我附上了代码和图像。

///////////////////////////////datepickerdialog///////////////////////////////
public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState){
        final Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);

        /*
            Create a DatePickerDialog using Theme.

                DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener listener,
                    int year, int monthOfYear, int dayOfMonth)
         */

        // DatePickerDialog THEME_DEVICE_DEFAULT_LIGHT
        DatePickerDialog dpd = new DatePickerDialog(getActivity(),this,year,month,day);

        if (Build.VERSION.SDK_INT < 22){

            dpd.getDatePicker().setCalendarViewShown(true);
            dpd.getDatePicker().setSpinnersShown(false);
            dpd.getDatePicker().getCalendarView().setShowWeekNumber(false); …
Run Code Online (Sandbox Code Playgroud)

android android-5.1.1-lollipop android-6.0-marshmallow

5
推荐指数
1
解决办法
5995
查看次数

ERR_CONNECTION_REFUSED http:// localhost:3000/socket.io/socket.io.js

Ciao,我正在实现webRTC多对多视频会议系统,实际上,我已经做到了,我使用socket.IO作为信令服务器,一切都很顺利,我使用EnterpriseDB Apache来提供我的.html文件在端口(8081)和Node.js上为端口(3000)上的socket.IO提供服务,它在localhost中工作就像魅力一样,没有错误,我的ISSUE服务于我的公共IP的外部访问,我正在和我的朋友一起测试这些浏览服务:www.browserstack.com和www.browserling.com(试用版).

  • 通过www.browserstack.com,无论是mozilla 42还是chrome 47,一切都运转良好

  • 通过www.browserling.com,我收到了这些错误

    Firefox 41:ReferenceError:未定义io

    Chrome 45:无法加载资源 http:// localhost:3000/socket.io/socket.io.js net :: ERR_CONNECTION_REFUSED未捕获的ReferenceError:未定义io

  • 和我的朋友们一样,我遇到了与www.browserling.com相同的问题,但他们使用最新的浏览器版本(Chrome 47和Firefox 42)连接到我的PC服务器.

我认为这不是浏览器版本问题,问题在于提供socket.io.js文件,最后,这是我的代码:

它只显示了解决这个问题的重要事项:

///NODE.JS DIRECTORY
////////////////////serverside.js
var port = 3000;
var io = require('socket.io').listen(port);
io.sockets.on('connection', function (socket){.........}


///APACHE DIRECTORY
////////////////////clientside.js 
//Connect to signalling server   
var socket = io.connect("http://localhost:3000");

////////////////////avq.html
<!DOCTYPE html>

<html lang="es">

    <head><meta charset="UTF-8">
    </head> 
    <body>
        <script src="http://localhost:3000/socket.io/socket.io.js"></script>
        <script src="js/clientside.js"></script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我的服务器URL,如果有人想尝试:http://201.209.104.33: 8081 /webrtcexamples/avq.html

javascript firefox html5 node.js socket.io

3
推荐指数
1
解决办法
3万
查看次数