Giter VIP home page Giter VIP logo

nextrtc-example-videochat's People

Contributors

bhlowe avatar mslosarz avatar sartan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

nextrtc-example-videochat's Issues

HTTP

Can this work without HTTPS on HTTP?

IOException when closing the browser tab

After I leave a room and close the browser tab those exceptions occur:

java.io.IOException: An established connection was aborted by the software in your host machine at sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:1.8.0_121] at sun.nio.ch.SocketDispatcher.write(Unknown Source) ~[na:1.8.0_121] at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) ~[na:1.8.0_121] at sun.nio.ch.IOUtil.write(Unknown Source) ~[na:1.8.0_121] at sun.nio.ch.SocketChannelImpl.write(Unknown Source) ~[na:1.8.0_121] at org.apache.tomcat.util.net.SecureNioChannel.flush(SecureNioChannel.java:143) ~[tomcat-embed-core-8.5.4.jar!/:8.5.4] at org.apache.tomcat.util.net.SecureNioChannel.close(SecureNioChannel.java:479) ~[tomcat-embed-core-8.5.4.jar!/:8.5.4] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.close(NioEndpoint.java:1185) ~[tomcat-embed-core-8.5.4.jar!/:8.5.4] at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doClose(WsRemoteEndpointImplServer.java:171) ~[tomcat-embed-websocket-8.5.4.j ar!/:8.5.4] at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.close(WsRemoteEndpointImplBase.java:710) [tomcat-embed-websocket-8.5.4.jar!/:8.5.4] at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:613) [tomcat-embed-websocket-8.5.4.jar!/:8.5.4] at org.apache.tomcat.websocket.WsSession.onClose(WsSession.java:526) [tomcat-embed-websocket-8.5.4.jar!/:8.5.4] at org.apache.tomcat.websocket.WsFrameBase.processDataControl(WsFrameBase.java:348) [tomcat-embed-websocket-8.5.4.jar!/:8.5.4] at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:290) [tomcat-embed-websocket-8.5.4.jar!/:8.5.4] at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:131) [tomcat-embed-websocket-8.5.4.jar!/:8.5.4] at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:69) [tomcat-embed-websocket-8.5.4.jar!/:8.5.4] at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148) [tomcat-embed-websocket-8.5.4.jar!/: 8.5.4] at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54) [tomcat-embed-core-8.5.4.jar!/:8.5.4] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53) [tomcat-embed-core-8.5.4.jar!/:8.5.4] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785) [tomcat-embed-core-8.5.4.jar!/:8.5.4] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425) [tomcat-embed-core-8.5.4.jar!/:8.5.4] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.4.jar!/:8.5.4] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_121] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_121] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.4.jar!/:8.5.4] at java.lang.Thread.run(Unknown Source) [na:1.8.0_121]

I'm guessing it's not a bug but it fills up the logs anyways.

ios client

i am try use nextRtc singnal as ios rtc client , but still have error msg : CAReportingClient.mm:320:-[CAReportingClient sendMessage:category:type:reporters:]_block_invoke: The operation couldn’t be completed. No valid RTCReporting and the session was started . how can i solve this problem ?

slightly out of date

Really nice demonstration!

It almost worked right out of the box, but it seems that this demo needs to provide a configuration of something that changed recently in nextrtc-signaling-server 1.0.0-SNAPSHOT.

As a workaround, I changed the dependency to 0.0.7, like this:

		<dependency>
			<groupId>org.nextrtc.signalingserver</groupId>
			<artifactId>nextrtc-signaling-server</artifactId>
			<version>0.0.7</version>
		</dependency>

The signaling server is well constructed. Keep it up.

When I joined the live streams, the main stream is closed

I get this from log:

res: {"from":"2c","to":"2a","signal":"newJoined","content":"2c","custom":{}}
nextRTC.js:22 Event newJoined do not have defined function
nextRTC.js:42 res: {"from":"2c","to":"2a","signal":"offerRequest","content":"","custom":{}}
nextRTC.js:36 req: {"signal":"offerResponse","to":"2c","content":"v=0\r\no=- 7812801170823583358 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS 0IeP7LDS08KknoLx0WZqmOByMF2YFBigMBUg\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:X6VK\r\na=ice-pwd:QyZ3EbueWMLokC9eKzZcfsCA\r\na=fingerprint:sha-256 67:92:E0:F5:9A:4F:68:52:D1:3B:A5:C5:A9:61:25:94:95:D6:74:E6:B8:14:80:A7:1B:81:6A:67:24:A3:99:58\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:126 telephone-event/8000\r\na=ssrc:1310528304 cname:u8Wtr7JVmvrBpho3\r\na=ssrc:1310528304 msid:0IeP7LDS08KknoLx0WZqmOByMF2YFBigMBUg b091ff17-320b-4a8d-9c66-2c8fbdcaf060\r\na=ssrc:1310528304 mslabel:0IeP7LDS08KknoLx0WZqmOByMF2YFBigMBUg\r\na=ssrc:1310528304 label:b091ff17-320b-4a8d-9c66-2c8fbdcaf060\r\nm=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:X6VK\r\na=ice-pwd:QyZ3EbueWMLokC9eKzZcfsCA\r\na=fingerprint:sha-256 67:92:E0:F5:9A:4F:68:52:D1:3B:A5:C5:A9:61:25:94:95:D6:74:E6:B8:14:80:A7:1B:81:6A:67:24:A3:99:58\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 1749200237 2409622343\r\na=ssrc:1749200237 cname:u8Wtr7JVmvrBpho3\r\na=ssrc:1749200237 msid:0IeP7LDS08KknoLx0WZqmOByMF2YFBigMBUg 414069d8-a20a-45d3-a4e3-b64f00d6cfe4\r\na=ssrc:1749200237 mslabel:0IeP7LDS08KknoLx0WZqmOByMF2YFBigMBUg\r\na=ssrc:1749200237 label:414069d8-a20a-45d3-a4e3-b64f00d6cfe4\r\na=ssrc:2409622343 cname:u8Wtr7JVmvrBpho3\r\na=ssrc:2409622343 msid:0IeP7LDS08KknoLx0WZqmOByMF2YFBigMBUg 414069d8-a20a-45d3-a4e3-b64f00d6cfe4\r\na=ssrc:2409622343 mslabel:0IeP7LDS08KknoLx0WZqmOByMF2YFBigMBUg\r\na=ssrc:2409622343 label:414069d8-a20a-45d3-a4e3-b64f00d6cfe4\r\n"}
nextRTC.js:42 res: {"from":"2c","to":"2a","signal":"finalize","content":"v\u003d0\r\no\u003d- 7699070921930670063 2 IN IP4 127.0.0.1\r\ns\u003d-\r\nt\u003d0 0\r\na\u003dgroup:BUNDLE audio video\r\na\u003dmsid-semantic: WMS LAu28nA0f4IkwTln7xZ3cQLbcY1BXOBHZIIM\r\nm\u003daudio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126\r\nc\u003dIN IP4 0.0.0.0\r\na\u003drtcp:9 IN IP4 0.0.0.0\r\na\u003dice-ufrag:cvZO\r\na\u003dice-pwd:kABmBMVCdRbl3WxUNmrc4Ctu\r\na\u003dfingerprint:sha-256 28:DA:B8:03:0F:E2:94:D4:CE:69:43:95:8E:06:FC:8C:73:E5:AB:E5:A1:F1:25:6B:5E:84:3E:2E:B0:29:D2:21\r\na\u003dsetup:active\r\na\u003dmid:audio\r\na\u003dextmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na\u003dsendrecv\r\na\u003drtcp-mux\r\na\u003drtpmap:111 opus/48000/2\r\na\u003drtcp-fb:111 transport-cc\r\na\u003dfmtp:111 minptime\u003d10;useinbandfec\u003d1\r\na\u003drtpmap:103 ISAC/16000\r\na\u003drtpmap:104 ISAC/32000\r\na\u003drtpmap:9 G722/8000\r\na\u003drtpmap:0 PCMU/8000\r\na\u003drtpmap:8 PCMA/8000\r\na\u003drtpmap:106 CN/32000\r\na\u003drtpmap:105 CN/16000\r\na\u003drtpmap:13 CN/8000\r\na\u003drtpmap:126 telephone-event/8000\r\na\u003dssrc:2386357247 cname:qAe1+VX2nSn2T7eI\r\na\u003dssrc:2386357247 msid:LAu28nA0f4IkwTln7xZ3cQLbcY1BXOBHZIIM 4188bc1d-26ce-4f29-be30-0c6487afc95e\r\na\u003dssrc:2386357247 mslabel:LAu28nA0f4IkwTln7xZ3cQLbcY1BXOBHZIIM\r\na\u003dssrc:2386357247 label:4188bc1d-26ce-4f29-be30-0c6487afc95e\r\nm\u003dvideo 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc\u003dIN IP4 0.0.0.0\r\na\u003drtcp:9 IN IP4 0.0.0.0\r\na\u003dice-ufrag:cvZO\r\na\u003dice-pwd:kABmBMVCdRbl3WxUNmrc4Ctu\r\na\u003dfingerprint:sha-256 28:DA:B8:03:0F:E2:94:D4:CE:69:43:95:8E:06:FC:8C:73:E5:AB:E5:A1:F1:25:6B:5E:84:3E:2E:B0:29:D2:21\r\na\u003dsetup:active\r\na\u003dmid:video\r\na\u003dextmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na\u003dextmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na\u003dextmap:4 urn:3gpp:video-orientation\r\na\u003dextmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na\u003dextmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na\u003dsendrecv\r\na\u003drtcp-mux\r\na\u003drtcp-rsize\r\na\u003drtpmap:100 VP8/90000\r\na\u003drtcp-fb:100 ccm fir\r\na\u003drtcp-fb:100 nack\r\na\u003drtcp-fb:100 nack pli\r\na\u003drtcp-fb:100 goog-remb\r\na\u003drtcp-fb:100 transport-cc\r\na\u003drtpmap:101 VP9/90000\r\na\u003drtcp-fb:101 ccm fir\r\na\u003drtcp-fb:101 nack\r\na\u003drtcp-fb:101 nack pli\r\na\u003drtcp-fb:101 goog-remb\r\na\u003drtcp-fb:101 transport-cc\r\na\u003drtpmap:107 H264/90000\r\na\u003drtcp-fb:107 ccm fir\r\na\u003drtcp-fb:107 nack\r\na\u003drtcp-fb:107 nack pli\r\na\u003drtcp-fb:107 goog-remb\r\na\u003drtcp-fb:107 transport-cc\r\na\u003dfmtp:107 level-asymmetry-allowed\u003d1;packetization-mode\u003d1;profile-level-id\u003d42e01f\r\na\u003drtpmap:116 red/90000\r\na\u003drtpmap:117 ulpfec/90000\r\na\u003drtpmap:96 rtx/90000\r\na\u003dfmtp:96 apt\u003d100\r\na\u003drtpmap:97 rtx/90000\r\na\u003dfmtp:97 apt\u003d101\r\na\u003drtpmap:99 rtx/90000\r\na\u003dfmtp:99 apt\u003d107\r\na\u003drtpmap:98 rtx/90000\r\na\u003dfmtp:98 apt\u003d116\r\na\u003dssrc-group:FID 2454611952 1925894524\r\na\u003dssrc:2454611952 cname:qAe1+VX2nSn2T7eI\r\na\u003dssrc:2454611952 msid:LAu28nA0f4IkwTln7xZ3cQLbcY1BXOBHZIIM ca2292e2-6217-4cfa-bdf4-408c21366e34\r\na\u003dssrc:2454611952 mslabel:LAu28nA0f4IkwTln7xZ3cQLbcY1BXOBHZIIM\r\na\u003dssrc:2454611952 label:ca2292e2-6217-4cfa-bdf4-408c21366e34\r\na\u003dssrc:1925894524 cname:qAe1+VX2nSn2T7eI\r\na\u003dssrc:1925894524 msid:LAu28nA0f4IkwTln7xZ3cQLbcY1BXOBHZIIM ca2292e2-6217-4cfa-bdf4-408c21366e34\r\na\u003dssrc:1925894524 mslabel:LAu28nA0f4IkwTln7xZ3cQLbcY1BXOBHZIIM\r\na\u003dssrc:1925894524 label:ca2292e2-6217-4cfa-bdf4-408c21366e34\r\n","custom":{}}
nextRTC.js:42 res: {"from":"2c","to":"2a","signal":"candidate","content":"{\u0027candidate\u0027:\u0027candidate:1402981654 1 udp 2122260223 192.168.1.63 50227 typ host generation 0 ufrag cvZO network-id 1 network-cost 10\u0027,\u0027sdpMid\u0027:\u0027audio\u0027,\u0027sdpMLineIndex\u0027:0}","custom":{}}
nextRTC.js:36 req: {"signal":"candidate","to":"2c","content":"{"candidate":"candidate:488387046 1 tcp 1518280447 192.168.1.63 9 typ host tcptype active generation 0 ufrag X6VK network-id 1 network-cost 10","sdpMid":"audio","sdpMLineIndex":0}"}
nextRTC.js:171 success: undefined

After join, I get from server offerRequest, and then finalize at main stream.

--
That's okay, just take the data stream from the source

Voice echo

Just after joining the room for voice chat, echo start and not able to hear any thing except echo, even while talking I can hear my own voice which troubles in understating the on going conversation.

not correct dependency

org.nextrtc.signalingserver nextrtc-signaling-server 0.0.6-SNAPSHOT should be changed to org.nextrtc.signalingserver nextrtc-signaling-server 0.0.6

How to present Web3D data file under nextrtc envionment?

Dear professor:
How do you do?
I am now confront with problems of heavy loading web 3d file to website, the format of the file is defined as below:

Vertex 60

39.3922 48.094 2.24827
39.4027 48.094 2.26167
39.3753 48.094 2.24584
39.3972 48.094 2.25038
39.3878 48.094 2.24492
39.4027 48.094 2.2511
39.4082 48.094 2.25038
39.4133 48.094 2.24827
39.4301 48.094 2.24584

 I  think it's obviously different from that of audio or video streams, I am now asking you for help , how to transport such web 3D file under nextrtc environment so that the web loading process become

even more smoothly?
I am looking formward to hearing from you at your convience.
My mail address: [email protected], [email protected]
Regards
Francis Huang

Building nextrtc-example-videochat

When i do compilation inside Idea 15 i got:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nextRTCEndpoint' defined in URL

[jar:file:/C:/Users/dimonik/.m2/repository/org/nextrtc/signalingserver/nextrtc-signaling-server/1.1.0-SNAPSHOT/nextrtc-signaling-server-1.1.0-SNAPSHOT.jar!/org/nextrtc/signalingserver/api/NextRTCEndpoint.class]:

Instantiation of bean failed;
nested exception is java.lang.NoClassDefFoundError: com/google/common/collect/Sets

What is com/google/common/collect/Sets?

if you use 'spring boot embeded server ', please make the following changes

pom.xml
Change spring-boot-starter-parent version
1.2.1.RELEASE -> 1.2.5.RELEASE

index.html
Change url
'ws://examples.nextrtc.org/videochat/signaling' -> 'ws://localhost:8080/signaling'

SampleWebStaticApplication.java
Add line

import org.springframework.context.annotation.Bean;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

//~~~~

@Bean
public MyEndpoint myEndpoint() {
    return new MyEndpoint();
}

@Bean
public ServerEndpointExporter serverEndpointExporter() {
    return new ServerEndpointExporter();
}

Thank you very much.
Your source code was very helpful.

Protocol between Client & Server

JS clients are using JSON to communicate with your signaling server.

What is a valid format of the JSON Request (accepted by server)?

What i should say to server in order to get reply?

video number is Incorrect

when I open more than four web client, I join the same conversation, the last client show the video number more than four.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.