Comments (9)
更新最新的代码看看是否解决了,我记得这个提交应该已经解决了 62641f4
from zlmediakit.
更新最新的代码看看是否解决了,我记得这个提交应该已经解决了 62641f4
多谢!
我先更新代码试试看。
from zlmediakit.
更新最新的代码看看是否解决了,我记得这个提交应该已经解决了 62641f4
我更新了这个提交后,该问题仍然存在。
主要是一个远程vpn访问系统的同事复现的,不知道跟她的网络环境有没有关系。
今天复现的log如下:
Line 130224: 2024-05-08 17:12:29.728 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:498 WebRtcTransportImp | CioAZH+9AAA=_145
Line 130225: 2024-05-08 17:12:29.731 D [MediaServer] [8-event poller 19] WebApi.cpp:296 http api debug |
Line 130396: 2024-05-08 17:12:29.731 T [MediaServer] [8-event poller 19] TcpServer.h:54 operator() | 382-166(10.42.0.139:41806) mediakit::HttpSession
Line 130397: 2024-05-08 17:12:29.731 I [MediaServer] [8-event poller 19] TcpServer.cpp:125 onAcceptConnection | ******** start sock->setOnRead sock:0x7f9a7c30ba70
Line 130398: 2024-05-08 17:12:29.732 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:498 WebRtcTransportImp | CioAZH+9AAA=_146
Line 130399: 2024-05-08 17:12:29.733 D [MediaServer] [8-event poller 19] WebApi.cpp:296 http api debug |
Line 130570: 2024-05-08 17:12:29.792 T [MediaServer] [8-event poller 19] UdpServer.h:40 operator() | 383-169(10.42.0.1:1198) mediakit::WebRtcSession
Line 130571: 2024-05-08 17:12:29.792 I [MediaServer] [8-event poller 19] WebRtcSession.cpp:85 onRecv_l | 383-169(10.42.0.1:1198)
Line 130572: 2024-05-08 17:12:29.792 D [MediaServer] [8-event poller 19] IceServer.cpp:340 HandleTuple | transition from state 'new' to 'connected'
Line 130573: 2024-05-08 17:12:29.792 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:164 OnIceServerSelectedTuple | CioAZH+9AAA=_145 select tuple udp 10.42.0.1:1198
Line 130574: 2024-05-08 17:12:29.792 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:170 OnIceServerConnected | CioAZH+9AAA=_145
Line 130575: 2024-05-08 17:12:29.796 T [MediaServer] [8-event poller 19] UdpServer.h:40 operator() | 384-171(10.42.0.1:49820) mediakit::WebRtcSession
Line 130576: 2024-05-08 17:12:29.797 I [MediaServer] [8-event poller 19] WebRtcSession.cpp:85 onRecv_l | 384-171(10.42.0.1:49820)
Line 130577: 2024-05-08 17:12:29.797 D [MediaServer] [8-event poller 19] IceServer.cpp:340 HandleTuple | transition from state 'new' to 'connected'
Line 130578: 2024-05-08 17:12:29.797 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:164 OnIceServerSelectedTuple | CioAZH+9AAA=_146 select tuple udp 10.42.0.1:49820
Line 130579: 2024-05-08 17:12:29.797 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:170 OnIceServerConnected | CioAZH+9AAA=_146
Line 130580: 2024-05-08 17:12:29.850 E [MediaServer] [8-event poller 19] DtlsTransport.cpp:744 ProcessDtlsData | cannot process data while not running
Line 130581: 2024-05-08 17:12:29.850 E [MediaServer] [8-event poller 19] DtlsTransport.cpp:744 ProcessDtlsData | cannot process data while not running
Line 130582: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] IceServer.cpp:429 HandleTuple | transition from state 'connected' to 'completed'
Line 130583: 2024-05-08 17:12:29.906 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:174 OnIceServerCompleted | CioAZH+9AAA=_145
Line 130584: 2024-05-08 17:12:29.906 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:226 OnDtlsTransportConnecting | CioAZH+9AAA=_145
Line 130585: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:699 Run | running [role:server]
Line 130586: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1411 OnSslInfo | DTLS handshake start
Line 130587: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
Line 130588: 2024-05-08 17:12:29.906 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'before SSL initialization']
Line 130589: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] IceServer.cpp:429 HandleTuple | transition from state 'connected' to 'completed'
Line 130590: 2024-05-08 17:12:29.907 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:174 OnIceServerCompleted | CioAZH+9AAA=_146
Line 130591: 2024-05-08 17:12:29.907 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:226 OnDtlsTransportConnecting | CioAZH+9AAA=_146
Line 130592: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:699 Run | running [role:server]
Line 130593: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1411 OnSslInfo | DTLS handshake start
Line 130594: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
Line 130595: 2024-05-08 17:12:29.907 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'before SSL initialization']
Line 130596: 2024-05-08 17:12:29.983 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
Line 130597: 2024-05-08 17:12:29.984 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client hello']
Line 130598: 2024-05-08 17:12:29.984 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server hello']
Line 130599: 2024-05-08 17:12:29.984 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate']
Line 130600: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write key exchange']
Line 130601: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate request']
Line 130602: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
Line 130603: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'SSLv3/TLS write server done']
Line 130604: 2024-05-08 17:12:29.986 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 2117 bytes of DTLS data ready to sent to the peer
Line 130605: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 99ms
Line 130606: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'before SSL initialization']
Line 130607: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client hello']
Line 130608: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server hello']
Line 130609: 2024-05-08 17:12:29.987 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate']
Line 130610: 2024-05-08 17:12:29.989 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write key exchange']
Line 130611: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write certificate request']
Line 130612: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
Line 130613: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1407 OnSslInfo | role: server, waiting:'SSLv3/TLS write server done']
Line 130614: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 2117 bytes of DTLS data ready to sent to the peer
Line 130615: 2024-05-08 17:12:29.990 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 99ms
Line 130616: 2024-05-08 17:12:30.033 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
Line 130617: 2024-05-08 17:12:30.034 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client certificate']
Line 130618: 2024-05-08 17:12:30.034 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client key exchange']
Line 130619: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read certificate verify']
Line 130620: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read change cipher spec']
Line 130621: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read finished']
Line 130622: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write change cipher spec']
Line 130623: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write finished']
Line 130624: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1415 OnSslInfo | DTLS handshake done
Line 130625: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 67 bytes of DTLS data ready to sent to the peer
Line 130626: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1166 CheckRemoteFingerprint | valid remote fingerprint
Line 130627: 2024-05-08 17:12:30.035 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1340 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AEAD_AES_256_GCM
Line 130628: 2024-05-08 17:12:30.035 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:191 OnDtlsTransportConnected | CioAZH+9AAA=_145
Line 130629: 2024-05-08 17:12:30.045 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 89ms
Line 130630: 2024-05-08 17:12:30.045 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write server done']
Line 130631: 2024-05-08 17:12:30.045 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client certificate']
Line 130632: 2024-05-08 17:12:30.045 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read client key exchange']
Line 130633: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read certificate verify']
Line 130634: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read change cipher spec']
Line 130635: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS read finished']
Line 130636: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write change cipher spec']
Line 130637: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1369 OnSslInfo | [role:server, action:'SSLv3/TLS write finished']
Line 130638: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1415 OnSslInfo | DTLS handshake done
Line 130639: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 67 bytes of DTLS data ready to sent to the peer
Line 130640: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1166 CheckRemoteFingerprint | valid remote fingerprint
Line 130641: 2024-05-08 17:12:30.046 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1340 GetNegotiatedSrtpCryptoSuite | chosen SRTP crypto suite: SRTP_AEAD_AES_256_GCM
Line 130642: 2024-05-08 17:12:30.046 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:191 OnDtlsTransportConnected | CioAZH+9AAA=_146
Line 130643: 2024-05-08 17:12:30.049 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1015 SetTimeout | DTLS timer set in 96ms
Line 130645: 2024-05-08 17:12:30.661 T [MediaServer] [8-event poller 19] UdpServer.cpp:302 operator() | 383-169(10.42.0.1:1198) mediakit::WebRtcSession on err: 255(message too long)
Line 130646: 2024-05-08 17:12:30.661 W [MediaServer] [8-event poller 19] WebRtcSession.cpp:104 onError | 383-169(10.42.0.1:1198) 255(message too long)
Line 130647: 2024-05-08 17:12:30.661 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:1175 removeTuple | CioAZH+9AAA=_145 remove tuple 10.42.0.1:1198
Line 130648: 2024-05-08 17:12:30.661 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:183 OnIceServerDisconnected | CioAZH+9AAA=_145
Line 130649: 2024-05-08 17:12:30.661 W [MediaServer] [8-event poller 19] WebRtcPlayer.cpp:98 onDestory | RTC播放器(defaultVhost/live/v6c2z7lzt5)结束播放,耗时(s):0
Line 130650: 2024-05-08 17:12:30.661 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:1395 OnSslInfo | sending DTLS warning alert: close notify
Line 130651: 2024-05-08 17:12:30.661 D [MediaServer] [8-event poller 19] DtlsTransport.cpp:977 SendPendingOutgoingDtlsData | 31 bytes of DTLS data ready to sent to the peer
Line 130652: 2024-05-08 17:12:30.661 W [MediaServer] [8-event poller 19] WebRtcTransport.cpp:514 onSendSockData | send data failed:31
Line 130653: 2024-05-08 17:12:30.661 I [MediaServer] [8-event poller 19] WebRtcTransport.cpp:502 ~WebRtcTransportImp | CioAZH+9AAA=_145
from zlmediakit.
查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html
配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的
from zlmediakit.
查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的
今天配置完这个之后,没复现问题了。
测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。
而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?
from zlmediakit.
查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的
今天配置完这个之后,没复现问题了。 测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。 而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?
感觉是你这个网络mtu 配置得很小,这个很奇怪,可能是网络问题导致报错吧
from zlmediakit.
查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的
今天配置完这个之后,没复现问题了。 测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。 而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?
感觉是你这个网络mtu 配置得很小,这个很奇怪,可能是网络问题导致报错吧
分析发现rtp报文中多了16字节的SRTP Auth Tag,导致实际udp总长超过配置中设置的videoMtuSize + 42.
videoMtuSize =1400; 1400+42+16=1458.
MediaServer所在的docker里的网卡mtu是1450, 小于1458.可能是这个原因导致的问题。
实际抓包还有很多1460长度的包,不清楚组包多出的2个字节哪来的。
from zlmediakit.
查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的
今天配置完这个之后,没复现问题了。 测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。 而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?
感觉是你这个网络mtu 配置得很小,这个很奇怪,可能是网络问题导致报错吧
分析发现rtp报文中多了16字节的SRTP Auth Tag,导致实际udp总长超过配置中设置的videoMtuSize + 42. videoMtuSize =1400; 1400+42+16=1458. MediaServer所在的docker里的网卡mtu是1450, 小于1458.可能是这个原因导致的问题。 实际抓包还有很多1460长度的包,不清楚组包多出的2个字节哪来的。
这个你配置下配置文件里面的mtu应该可以解决
from zlmediakit.
查看下这个 https://man7.org/linux/man-pages/man7/udp.7.html 配置下 /proc/sys/net/ipv4/ip_no_pmtu_disc 去关闭这个报错,然后你抓包看看是咋回事,不应该会超过MTU的
今天配置完这个之后,没复现问题了。 测试时抓了包,dtls最大包长1301,udp最大包长1460,看上去也都不大。 而且,之前更新的这个提交 62641f4 看上去是要把长报文分多次传输,感觉不配置ip_no_pmtu_disc,也不应该出现message too long的问题吧?
感觉是你这个网络mtu 配置得很小,这个很奇怪,可能是网络问题导致报错吧
分析发现rtp报文中多了16字节的SRTP Auth Tag,导致实际udp总长超过配置中设置的videoMtuSize + 42. videoMtuSize =1400; 1400+42+16=1458. MediaServer所在的docker里的网卡mtu是1450, 小于1458.可能是这个原因导致的问题。 实际抓包还有很多1460长度的包,不清楚组包多出的2个字节哪来的。
这个你配置下配置文件里面的mtu应该可以解决
已经将配置里的mtu改成1300了。
感谢您对这个问题的持续关注和指导。
from zlmediakit.
Related Issues (20)
- rtsp推流 webrtc 播放不响应 HOT 5
- [BUG] 国标下载录像,保存录像之后无法播放 HOT 3
- [BUG] 启动Zlm后,使用webrtc观看rtsp视频流报错 HOT 1
- [BUG] rtsp流代理,在网页播放器播放hls.m3u8链接黑屏只有进度条在动,但是使用PotPlayer等PC播放器能正常播放 HOT 7
- 运行mediaserver然后网页输入ip报错 :您访问的资源不存在! HOT 1
- 重启zlm后,wvp中拉流代理中的播放无法播放,是否拉流zlm中吧应用清空了,是否有好的解决方法 HOT 1
- [BUG] ZLMediaKit重启后,拉流代理列表中的任务无法播放,报500错误。 HOT 1
- [BUG] ZLMediaKit重启后,拉流代理列表中的任务无法播放 HOT 2
- 使用test_bench_push测试性能,提示“ Bind socket failed: address already in use” HOT 2
- [BUG] 使用startSendRtp接口来创建流报错 HOT 1
- [编译问题] iOS 编译后生成静态库不包含可用头文件 HOT 1
- obs推流到zlm,使用webrtc播放时,每隔8秒左右都会有卡顿出现 HOT 6
- [BUG] 使用语音对讲连接成功后不能输出语音过5到6秒自动断掉 HOT 4
- [BUG] 拉流代理RTSP视频流,WebRTC无法播放 HOT 1
- [BUG] 拉流代理RTSP视频流,WebRTC无法播放 HOT 2
- zlm点播流性能测试---只能达到800M HOT 2
- zlm性能测试只能是 800M HOT 1
- [功能请求] MP4录制能否支持一个自定义命令 HOT 1
- [功能请求] MP4录制能否支持一个将H265转码成H264
- [BUG] wvp添加拉流代理,重启摄像头拉流代理失效
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zlmediakit.