際際滷

際際滷Share a Scribd company logo
C++ WebRTC
(DataChannel)
/ @llamerada_jp
WebRTC Meetup Tokyo #20
SE
/ /
GitHub : llamerada-jp
facebook : ito.yuuji
twitter : @llamerada_jp
blog : http://llamerad-jp.hatenablog.com/
/
PROCESSWARP
Web /
/
www.oinari.app
libvein
Server
/
libvein
Web /
2 PubSub
KVS
Seed / Server
Documents /
https://webrtc.org/native-code/development/
&
API code reading
WebRTC ( )
?https://gist.github.com/szktty/
a47213f0077294c64ea58621c2dcfaf2
android iOS
CUI WebRTC
https://github.com/llamerada-jp/webrtc-cpp-sample
WebRTC
https://github.com/llamerada-jp/libwebrtc
Native APIs
WebRTC Native APIs ?
WebView / Electron
WebSocket
iOS / Android (C++ )
WebRTC Native APIs
API
API
WebRTC API ( )
connect

SDP

ICE

send data

disconnect

event

change status

recv data

raise error
libuv
libuv
main Thread
rtc::Runnable Thread
webrtc::

CreatePeerConnectionFactory
rtc::Runnable::Run
uv_loop
uv_async_send Event!
libvein
JavaScritp
WebAssembly
WebRTC/WebSocket API
SDP / ICE (Server /
Seed )
libvein core (C++)

WebSocket

Wrapper
WebRTC

Wrapper
Native
WebRTC
Browser

WebRTC
Browser

WebSocket
WebSocket++
C++

API
C

API
Python JavaScript
https://webrtc.org/native-code/development/
http://commondatastorage.googleapis.com/chrome-infra-docs/?at/depot_tools/
docs/html/depot_tools_tutorial.html
$ cd <workdir>

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

$ export PATH=$PATH:`pwd`/depot_tools

$ cd <workdir>

$ mkdir webrtc-checkout

$ cd webrtc-checkout

$ fetch --nohooks webrtc

$ gclient sync

$ gn gen out/Default --args=`is_debug=false¨

$ ninja -C out/Default
Chrome WebRTC
@ WebRTC

Σ( ω )
chromium URL
https://omahaproxy.appspot.com/all
OS stable
branch_commit

HASH of chromium
$ cd <workdir>

$ git clone https://chromium.googlesource.com/chromium/src chromium

$ cd chromium

$ git show <HASH of chromium>:DEPS

< >

`src/third_party/webrtc':

Var('webrtc_git') + '/src.git' + '@' + `784fccbd71c0130b32345d81459b5d0cb07ff6e5',

< >
HASH of webrtc
< gclient sync >
$ git fetch
$ git checkout <HASH of webrtc>
$ gclient sync
$ gn gen out/Default [--args='is_debug=false']
$ ninja -C out/Default [<target>]
@ Linux
static library(.a ) .o
.a
ar 1 .a
src/out/Default/obj/examples/peerconnection_client.ninja

build <target>: link <obj1> <obj2> ´ 

build ./peerconnection_client: link obj/examples/
peerconnection_client/conductor.o obj/examples/
peerconnection_client/defaults.o obj/examples/
peerconnection_client/peer_connection_client.o obj/
examples/peerconnection_client/main.o obj/examples/
peerconnection_client/main_wnd.o obj/api/video/
video_frame_i420/i420_buffer.o obj/rtc_base/checks/
checks.o obj/rtc_base/stringutils/string_to_number.o
@ macOS
obj/sdk/mac_framework_objc_shared_library/WebRTC
obj/api/video_codecs/libbuiltin_video_encoder_factory.a
obj/api/video_codecs/libbuiltin_video_decoder_factory.a
src/out/Default/obj/sdk/mac_framework_objc_shared_library.ninja
src/obj/api/video_codecs/libbuiltin_video_encoder_factory.a
src/obj/api/video_codecs/libbuiltin_video_decoder_factory.a
nm
https://github.com/llamerada-jp/search-
symbol
chromium
peerconnection_client
https://github.com/llamerada-jp/webrtc-cpp-sample
API JavaScript JavaScript
C++ API
PeerConnectionObserver
class PCO : public webrtc::PeerConnectionObserver {

void OnSignalingChange(webrtc::PeerConnectionInterface::SignalingState new_state) override;

void OnAddStream(rtc::scoped_refptr<webrtc::MediaStreamInterface> stream) override;

void OnRemoveStream(rtc::scoped_refptr<webrtc::MediaStreamInterface> stream) override;

// DataChannel !

void OnDataChannel(rtc::scoped_refptr<webrtc::DataChannelInterface> data_channel) override;

void OnRenegotiationNeeded() override;

void OnIceConnectionChange(webrtc::PeerConnectionInterface::IceConnectionState new_state) override;

void OnIceGatheringChange(webrtc::PeerConnectionInterface::IceGatheringState new_state) override;

// ICE 

void OnIceCandidate(const webrtc::IceCandidateInterface* candidate) override;

};
DataChannelObserver
class DCO : public webrtc::DataChannelObserver {

// 

void OnStateChange() override;

// 

void OnMessage(const webrtc::DataBuffer& buffer) override;

void OnBufferedAmountChange(uint64_t previous_amount) override;

};
SessionDescriptionObserver
class CSDO : public webrtc::CreateSessionDescriptionObserver {

void OnSuccess(webrtc::SessionDescriptionInterface* desc) override;

void OnFailure(const std::string& error) override;

};

class SSDO : public webrtc::SetSessionDescriptionObserver {

void OnSuccess() override;

void OnFailure(const std::string& error) override;

};

rtc::scoped_refptr<CSDO> csdo (new rtc::RefCountedObject<CSDO>());

rtc::scoped_refptr<SSDO> ssdo (new rtc::RefCountedObject<SSDO>());
&
CreatePeerConnectionFactory
class CustomRunnable : public rtc::Runnable {

public:

void Run(rtc::Thread* subthread) override {

peer_connection_factory = webrtc::CreatePeerConnectionFactory(

nullptr /* network_thread */, nullptr /* worker_thread */,

nullptr /* signaling_thread */, nullptr /* default_adm */,

webrtc::CreateBuiltinAudioEncoderFactory(),

webrtc::CreateBuiltinAudioDecoderFactory(),

webrtc::CreateBuiltinVideoEncoderFactory(),

webrtc::CreateBuiltinVideoDecoderFactory(),

nullptr /* audio_mixer */, nullptr /* audio_processing */);

if (peer_connection_factory.get() == nullptr) {

// Error

}

subthread->Run();

}

};
rtc::PhysicalSocketServer socket_server;

thread.reset(new rtc::Thread(&socket_server));

rtc::InitializeSSL();

CustomRunnable runnable;

thread->Start(&runnable);

< peer_connection_factory >

peer_connection = peer_connection_factory->CreatePeerConnection(con?guration, nullptr, nullptr, &pco);

webrtc::DataChannelInit con?g;

// DataChannel 

data_channel = peer_connection->CreateDataChannel("data_channel", &con?g);

data_channel->RegisterObserver(&dco);

peer_connection->CreateOffer(csdo, webrtc::PeerConnectionInterface::RTCOfferAnswerOptions());
std::string message(^hello!! ̄,);

webrtc::DataBuffer buffer(

rtc::CopyOnWriteBuffer(

message.c_str(),

message.size()),

true);

data_channel->Send(buffer);
class DCO : public webrtc::DataChannelObserver {

// 

void OnMessage(const webrtc::DataBuffer& buffer) override {

std::cout << std::string(buffer.data.data<char>(), buffer.data.size()) << std::endl;

}

};
// Close 

peer_connection->Close();

peer_connection = nullptr;

data_channel = nullptr;

peer_connection_factory = nullptr;

thread->Quit();

thread.reset();

rtc::CleanupSSL();
macOS : WEBRTC_MAC=1 WEBRTC_POSIX=1
Linux : WEBRTC_LINUX=1 WEBRTC_POSIX=1
clang (libc++ )
-stdlib=libc++
C++ RTTI -fno-rtti
typeinfo dynamic_cast
--start-group --end-group
$ clang++ -I<workdir/webrtc-checkout/src> -I<workdir/webrtc-checkout/src/
third_party/abseil-cpp> -DWEBRTC_MAC=1 -DWEBRTC_POSIX=1 -std=c++11 -W -Wall -
Wno-unused-parameter -O0 -g -fno-rtti -o <output> -o <source>

(github ) build
./build.sh 

$ cd <path to build>

$ make clean

$ make VERBOSE=1
OpenSSL BoringSSL API
HTTP WebSocket
BoringSSL
WebRTC Third party src/third_party
WebRTC BSD
src/third_party
OSS WebRTC
WebRTC C++

More Related Content

What's hot (20)

禽京スキ`マもバ`ジョン砿尖したい
禽京スキ`マもバ`ジョン砿尖したい禽京スキ`マもバ`ジョン砿尖したい
禽京スキ`マもバ`ジョン砿尖したい
kwatch
?
~鯛ちないアフ?リの恬り圭
~鯛ちないアフ?リの恬り圭~鯛ちないアフ?リの恬り圭
~鯛ちないアフ?リの恬り圭
Fumihiko Shiroyama
?
Magnum IO GPUDirect Storage 恷仟秤
Magnum IO GPUDirect Storage 恷仟秤Magnum IO GPUDirect Storage 恷仟秤
Magnum IO GPUDirect Storage 恷仟秤
NVIDIA Japan
?
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
?
永堰永で安艶恢皆看界一艶岳をg廾してみてわかったこと
永堰永で安艶恢皆看界一艶岳をg廾してみてわかったこと永堰永で安艶恢皆看界一艶岳をg廾してみてわかったこと
永堰永で安艶恢皆看界一艶岳をg廾してみてわかったこと
ksimoji
?
弊順匯わかりやすいClean Architecture
弊順匯わかりやすいClean Architecture弊順匯わかりやすいClean Architecture
弊順匯わかりやすいClean Architecture
Atsushi Nakamura
?
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
Yuji Kubota
?
Spring CloudとZipkinを旋喘した蛍柊トレ`シング
Spring CloudとZipkinを旋喘した蛍柊トレ`シングSpring CloudとZipkinを旋喘した蛍柊トレ`シング
Spring CloudとZipkinを旋喘した蛍柊トレ`シング
Rakuten Group, Inc.
?
箭翌譜柴における寄恟
箭翌譜柴における寄恟箭翌譜柴における寄恟
箭翌譜柴における寄恟
Takuto Wada
?
遺閣永檎2018の永看庄稼岳遺鉛看顎糸の遺鰻鰻胎猟と皆永晦粥意鰻艶岳
遺閣永檎2018の永看庄稼岳遺鉛看顎糸の遺鰻鰻胎猟と皆永晦粥意鰻艶岳遺閣永檎2018の永看庄稼岳遺鉛看顎糸の遺鰻鰻胎猟と皆永晦粥意鰻艶岳
遺閣永檎2018の永看庄稼岳遺鉛看顎糸の遺鰻鰻胎猟と皆永晦粥意鰻艶岳
Takuya Minagawa
?
秘T Kubeflow ゛KubernetesでC亠僥をはじめるために゛ NTT Tech Conference #4 v處Y創
秘T Kubeflow ゛KubernetesでC亠僥をはじめるために゛ NTT Tech Conference #4 v處Y創秘T Kubeflow ゛KubernetesでC亠僥をはじめるために゛ NTT Tech Conference #4 v處Y創
秘T Kubeflow ゛KubernetesでC亠僥をはじめるために゛ NTT Tech Conference #4 v處Y創
NTT DATA Technology & Innovation
?
Serf / Consul 秘T ゛碧並をSしくしよう゛
Serf / Consul 秘T ゛碧並をSしくしよう゛Serf / Consul 秘T ゛碧並をSしくしよう゛
Serf / Consul 秘T ゛碧並をSしくしよう゛
Masahito Zembutsu
?
皆沿温稼稼艶姻卞佩について云欒して深えてみた
皆沿温稼稼艶姻卞佩について云欒して深えてみた皆沿温稼稼艶姻卞佩について云欒して深えてみた
皆沿温稼稼艶姻卞佩について云欒して深えてみた
techgamecollege
?
禽看界一艶姻イメ`ジ砿尖の坪何更夛
禽看界一艶姻イメ`ジ砿尖の坪何更夛禽看界一艶姻イメ`ジ砿尖の坪何更夛
禽看界一艶姻イメ`ジ砿尖の坪何更夛
Etsuji Nakai
?
姻看看岳慙淮泙靴念顎恢艶姻稼艶岳艶壊を強かす
姻看看岳慙淮泙靴念顎恢艶姻稼艶岳艶壊を強かす 姻看看岳慙淮泙靴念顎恢艶姻稼艶岳艶壊を強かす
姻看看岳慙淮泙靴念顎恢艶姻稼艶岳艶壊を強かす
Akihiro Suda
?
ワタシは皆庄稼乙鉛艶岳看稼がキライだ
ワタシは皆庄稼乙鉛艶岳看稼がキライだワタシは皆庄稼乙鉛艶岳看稼がキライだ
ワタシは皆庄稼乙鉛艶岳看稼がキライだ
Tetsuya Kaneuchi
?
オ`プンソ`ス SLAM の蛍
オ`プンソ`ス SLAM の蛍オ`プンソ`ス SLAM の蛍
オ`プンソ`ス SLAM の蛍
Yoshitaka HARA
?
LiDAR-SLAM チュ`トリアルY創
LiDAR-SLAM チュ`トリアルY創LiDAR-SLAM チュ`トリアルY創
LiDAR-SLAM チュ`トリアルY創
Fujimoto Keisuke
?
仝Entity Framework Coreを聞ってみる々 巷_喘
仝Entity Framework Coreを聞ってみる々 巷_喘仝Entity Framework Coreを聞ってみる々 巷_喘
仝Entity Framework Coreを聞ってみる々 巷_喘
ESM SEC
?
Unityて?兵めるハ?`シ?ョン砿尖 Git LFS 秘T
Unityて?兵めるハ?`シ?ョン砿尖 Git LFS 秘TUnityて?兵めるハ?`シ?ョン砿尖 Git LFS 秘T
Unityて?兵めるハ?`シ?ョン砿尖 Git LFS 秘T
NAKAOKU Takahiro
?
禽京スキ`マもバ`ジョン砿尖したい
禽京スキ`マもバ`ジョン砿尖したい禽京スキ`マもバ`ジョン砿尖したい
禽京スキ`マもバ`ジョン砿尖したい
kwatch
?
~鯛ちないアフ?リの恬り圭
~鯛ちないアフ?リの恬り圭~鯛ちないアフ?リの恬り圭
~鯛ちないアフ?リの恬り圭
Fumihiko Shiroyama
?
Magnum IO GPUDirect Storage 恷仟秤
Magnum IO GPUDirect Storage 恷仟秤Magnum IO GPUDirect Storage 恷仟秤
Magnum IO GPUDirect Storage 恷仟秤
NVIDIA Japan
?
永堰永で安艶恢皆看界一艶岳をg廾してみてわかったこと
永堰永で安艶恢皆看界一艶岳をg廾してみてわかったこと永堰永で安艶恢皆看界一艶岳をg廾してみてわかったこと
永堰永で安艶恢皆看界一艶岳をg廾してみてわかったこと
ksimoji
?
弊順匯わかりやすいClean Architecture
弊順匯わかりやすいClean Architecture弊順匯わかりやすいClean Architecture
弊順匯わかりやすいClean Architecture
Atsushi Nakamura
?
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
Yuji Kubota
?
Spring CloudとZipkinを旋喘した蛍柊トレ`シング
Spring CloudとZipkinを旋喘した蛍柊トレ`シングSpring CloudとZipkinを旋喘した蛍柊トレ`シング
Spring CloudとZipkinを旋喘した蛍柊トレ`シング
Rakuten Group, Inc.
?
箭翌譜柴における寄恟
箭翌譜柴における寄恟箭翌譜柴における寄恟
箭翌譜柴における寄恟
Takuto Wada
?
遺閣永檎2018の永看庄稼岳遺鉛看顎糸の遺鰻鰻胎猟と皆永晦粥意鰻艶岳
遺閣永檎2018の永看庄稼岳遺鉛看顎糸の遺鰻鰻胎猟と皆永晦粥意鰻艶岳遺閣永檎2018の永看庄稼岳遺鉛看顎糸の遺鰻鰻胎猟と皆永晦粥意鰻艶岳
遺閣永檎2018の永看庄稼岳遺鉛看顎糸の遺鰻鰻胎猟と皆永晦粥意鰻艶岳
Takuya Minagawa
?
秘T Kubeflow ゛KubernetesでC亠僥をはじめるために゛ NTT Tech Conference #4 v處Y創
秘T Kubeflow ゛KubernetesでC亠僥をはじめるために゛ NTT Tech Conference #4 v處Y創秘T Kubeflow ゛KubernetesでC亠僥をはじめるために゛ NTT Tech Conference #4 v處Y創
秘T Kubeflow ゛KubernetesでC亠僥をはじめるために゛ NTT Tech Conference #4 v處Y創
NTT DATA Technology & Innovation
?
Serf / Consul 秘T ゛碧並をSしくしよう゛
Serf / Consul 秘T ゛碧並をSしくしよう゛Serf / Consul 秘T ゛碧並をSしくしよう゛
Serf / Consul 秘T ゛碧並をSしくしよう゛
Masahito Zembutsu
?
皆沿温稼稼艶姻卞佩について云欒して深えてみた
皆沿温稼稼艶姻卞佩について云欒して深えてみた皆沿温稼稼艶姻卞佩について云欒して深えてみた
皆沿温稼稼艶姻卞佩について云欒して深えてみた
techgamecollege
?
禽看界一艶姻イメ`ジ砿尖の坪何更夛
禽看界一艶姻イメ`ジ砿尖の坪何更夛禽看界一艶姻イメ`ジ砿尖の坪何更夛
禽看界一艶姻イメ`ジ砿尖の坪何更夛
Etsuji Nakai
?
姻看看岳慙淮泙靴念顎恢艶姻稼艶岳艶壊を強かす
姻看看岳慙淮泙靴念顎恢艶姻稼艶岳艶壊を強かす 姻看看岳慙淮泙靴念顎恢艶姻稼艶岳艶壊を強かす
姻看看岳慙淮泙靴念顎恢艶姻稼艶岳艶壊を強かす
Akihiro Suda
?
ワタシは皆庄稼乙鉛艶岳看稼がキライだ
ワタシは皆庄稼乙鉛艶岳看稼がキライだワタシは皆庄稼乙鉛艶岳看稼がキライだ
ワタシは皆庄稼乙鉛艶岳看稼がキライだ
Tetsuya Kaneuchi
?
オ`プンソ`ス SLAM の蛍
オ`プンソ`ス SLAM の蛍オ`プンソ`ス SLAM の蛍
オ`プンソ`ス SLAM の蛍
Yoshitaka HARA
?
LiDAR-SLAM チュ`トリアルY創
LiDAR-SLAM チュ`トリアルY創LiDAR-SLAM チュ`トリアルY創
LiDAR-SLAM チュ`トリアルY創
Fujimoto Keisuke
?
仝Entity Framework Coreを聞ってみる々 巷_喘
仝Entity Framework Coreを聞ってみる々 巷_喘仝Entity Framework Coreを聞ってみる々 巷_喘
仝Entity Framework Coreを聞ってみる々 巷_喘
ESM SEC
?
Unityて?兵めるハ?`シ?ョン砿尖 Git LFS 秘T
Unityて?兵めるハ?`シ?ョン砿尖 Git LFS 秘TUnityて?兵めるハ?`シ?ョン砿尖 Git LFS 秘T
Unityて?兵めるハ?`シ?ョン砿尖 Git LFS 秘T
NAKAOKU Takahiro
?

Similar to C++からWebRTC (DataChannel)を旋喘する (20)

Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile Web
Ariya Hidayat
?
[1C2]webrtc ?????, ??????? ????
[1C2]webrtc ?????, ??????? ????[1C2]webrtc ?????, ??????? ????
[1C2]webrtc ?????, ??????? ????
NAVER D2
?
my accadanic project ppt
my accadanic project pptmy accadanic project ppt
my accadanic project ppt
Manivel Thiruvengadam
?
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
Ariya Hidayat
?
Hybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitHybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKit
Ariya Hidayat
?
Hybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitHybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKit
Ariya Hidayat
?
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
Viktor Gamov
?
Mark Rendle ".NET Is Dead. Long Live .NET!"
Mark Rendle ".NET Is Dead. Long Live .NET!"Mark Rendle ".NET Is Dead. Long Live .NET!"
Mark Rendle ".NET Is Dead. Long Live .NET!"
Fwdays
?
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
Gonzalo Ayuso
?
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS Application
Ben Hall
?
ICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFishICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFish
Eduardo Pelegri-Llopart
?
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
David Lindkvist
?
KSDG-i際際滷 App _l伉誼蛍
KSDG-i際際滷 App _l伉誼蛍KSDG-i際際滷 App _l伉誼蛍
KSDG-i際際滷 App _l伉誼蛍
Chia Wei Tsai
?
Socket.io
Socket.ioSocket.io
Socket.io
Diego Pacheco
?
JooinK - DevFest Piemonte 2013
JooinK - DevFest Piemonte 2013JooinK - DevFest Piemonte 2013
JooinK - DevFest Piemonte 2013
JooinK
?
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
Association Paris-Web
?
URL Design
URL DesignURL Design
URL Design
Walter Ebert
?
Direct Web Remoting : DWR
Direct Web Remoting : DWRDirect Web Remoting : DWR
Direct Web Remoting : DWR
hussulinux
?
Csphtp1 20
Csphtp1 20Csphtp1 20
Csphtp1 20
HUST
?
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication development
Ganesh Gembali
?
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile Web
Ariya Hidayat
?
[1C2]webrtc ?????, ??????? ????
[1C2]webrtc ?????, ??????? ????[1C2]webrtc ?????, ??????? ????
[1C2]webrtc ?????, ??????? ????
NAVER D2
?
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
Ariya Hidayat
?
Hybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitHybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKit
Ariya Hidayat
?
Hybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKitHybrid Apps (Native + Web) using WebKit
Hybrid Apps (Native + Web) using WebKit
Ariya Hidayat
?
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
Viktor Gamov
?
Mark Rendle ".NET Is Dead. Long Live .NET!"
Mark Rendle ".NET Is Dead. Long Live .NET!"Mark Rendle ".NET Is Dead. Long Live .NET!"
Mark Rendle ".NET Is Dead. Long Live .NET!"
Fwdays
?
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS Application
Ben Hall
?
KSDG-i際際滷 App _l伉誼蛍
KSDG-i際際滷 App _l伉誼蛍KSDG-i際際滷 App _l伉誼蛍
KSDG-i際際滷 App _l伉誼蛍
Chia Wei Tsai
?
JooinK - DevFest Piemonte 2013
JooinK - DevFest Piemonte 2013JooinK - DevFest Piemonte 2013
JooinK - DevFest Piemonte 2013
JooinK
?
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
IE 8 et les standards du Web - Chris Wilson - Paris Web 2008
Association Paris-Web
?
Direct Web Remoting : DWR
Direct Web Remoting : DWRDirect Web Remoting : DWR
Direct Web Remoting : DWR
hussulinux
?
Csphtp1 20
Csphtp1 20Csphtp1 20
Csphtp1 20
HUST
?
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication development
Ganesh Gembali
?

More from v望 卅儲 (11)

Container Storage Interface のすべて
Container Storage Interface のすべてContainer Storage Interface のすべて
Container Storage Interface のすべて
v望 卅儲
?
遺/遺++と安艶恢粥壊壊艶馨恢鉛霞を旋喘したライブラリ蝕k
遺/遺++と安艶恢粥壊壊艶馨恢鉛霞を旋喘したライブラリ蝕k遺/遺++と安艶恢粥壊壊艶馨恢鉛霞を旋喘したライブラリ蝕k
遺/遺++と安艶恢粥壊壊艶馨恢鉛霞を旋喘したライブラリ蝕k
v望 卅儲
?
衲h安艶恢粥壊壊艶馨恢鉛霞
衲h安艶恢粥壊壊艶馨恢鉛霞衲h安艶恢粥壊壊艶馨恢鉛霞
衲h安艶恢粥壊壊艶馨恢鉛霞
v望 卅儲
?
シンプル Processing !
シンプル Processing !シンプル Processing !
シンプル Processing !
v望 卅儲
?
PROCESS WARP仝プロセスがデバイスgで卞咾垢襦絞暴Mみを恬る
PROCESS WARP仝プロセスがデバイスgで卞咾垢襦絞暴Mみを恬るPROCESS WARP仝プロセスがデバイスgで卞咾垢襦絞暴Mみを恬る
PROCESS WARP仝プロセスがデバイスgで卞咾垢襦絞暴Mみを恬る
v望 卅儲
?
PROCESS WARP
PROCESS WARPPROCESS WARP
PROCESS WARP
v望 卅儲
?
安艶恢ブラウザで聞えるいろんなI尖狼
安艶恢ブラウザで聞えるいろんなI尖狼安艶恢ブラウザで聞えるいろんなI尖狼
安艶恢ブラウザで聞えるいろんなI尖狼
v望 卅儲
?
PROCESS WARP
PROCESS WARPPROCESS WARP
PROCESS WARP
v望 卅儲
?
PIAXで恬る P2Pネットワ`ク
PIAXで恬る P2Pネットワ`クPIAXで恬る P2Pネットワ`ク
PIAXで恬る P2Pネットワ`ク
v望 卅儲
?
仟しい蛍柊g佩の碧Mみ PROCESS WARPについて
仟しい蛍柊g佩の碧Mみ PROCESS WARPについて仟しい蛍柊g佩の碧Mみ PROCESS WARPについて
仟しい蛍柊g佩の碧Mみ PROCESS WARPについて
v望 卅儲
?
艶馨壊界姻庄沿岳艶稼で遺/遺++プログラムを敬艶恢ブラウザから聞うまでの佃侭好待
艶馨壊界姻庄沿岳艶稼で遺/遺++プログラムを敬艶恢ブラウザから聞うまでの佃侭好待艶馨壊界姻庄沿岳艶稼で遺/遺++プログラムを敬艶恢ブラウザから聞うまでの佃侭好待
艶馨壊界姻庄沿岳艶稼で遺/遺++プログラムを敬艶恢ブラウザから聞うまでの佃侭好待
v望 卅儲
?
Container Storage Interface のすべて
Container Storage Interface のすべてContainer Storage Interface のすべて
Container Storage Interface のすべて
v望 卅儲
?
遺/遺++と安艶恢粥壊壊艶馨恢鉛霞を旋喘したライブラリ蝕k
遺/遺++と安艶恢粥壊壊艶馨恢鉛霞を旋喘したライブラリ蝕k遺/遺++と安艶恢粥壊壊艶馨恢鉛霞を旋喘したライブラリ蝕k
遺/遺++と安艶恢粥壊壊艶馨恢鉛霞を旋喘したライブラリ蝕k
v望 卅儲
?
衲h安艶恢粥壊壊艶馨恢鉛霞
衲h安艶恢粥壊壊艶馨恢鉛霞衲h安艶恢粥壊壊艶馨恢鉛霞
衲h安艶恢粥壊壊艶馨恢鉛霞
v望 卅儲
?
シンプル Processing !
シンプル Processing !シンプル Processing !
シンプル Processing !
v望 卅儲
?
PROCESS WARP仝プロセスがデバイスgで卞咾垢襦絞暴Mみを恬る
PROCESS WARP仝プロセスがデバイスgで卞咾垢襦絞暴Mみを恬るPROCESS WARP仝プロセスがデバイスgで卞咾垢襦絞暴Mみを恬る
PROCESS WARP仝プロセスがデバイスgで卞咾垢襦絞暴Mみを恬る
v望 卅儲
?
安艶恢ブラウザで聞えるいろんなI尖狼
安艶恢ブラウザで聞えるいろんなI尖狼安艶恢ブラウザで聞えるいろんなI尖狼
安艶恢ブラウザで聞えるいろんなI尖狼
v望 卅儲
?
PIAXで恬る P2Pネットワ`ク
PIAXで恬る P2Pネットワ`クPIAXで恬る P2Pネットワ`ク
PIAXで恬る P2Pネットワ`ク
v望 卅儲
?
仟しい蛍柊g佩の碧Mみ PROCESS WARPについて
仟しい蛍柊g佩の碧Mみ PROCESS WARPについて仟しい蛍柊g佩の碧Mみ PROCESS WARPについて
仟しい蛍柊g佩の碧Mみ PROCESS WARPについて
v望 卅儲
?
艶馨壊界姻庄沿岳艶稼で遺/遺++プログラムを敬艶恢ブラウザから聞うまでの佃侭好待
艶馨壊界姻庄沿岳艶稼で遺/遺++プログラムを敬艶恢ブラウザから聞うまでの佃侭好待艶馨壊界姻庄沿岳艶稼で遺/遺++プログラムを敬艶恢ブラウザから聞うまでの佃侭好待
艶馨壊界姻庄沿岳艶稼で遺/遺++プログラムを敬艶恢ブラウザから聞うまでの佃侭好待
v望 卅儲
?

Recently uploaded (14)

cyber hacking and cyber fraud by internet online money
cyber hacking and cyber fraud by internet online moneycyber hacking and cyber fraud by internet online money
cyber hacking and cyber fraud by internet online money
VEENAKSHI PATHAK
?
Building a Multiplatform SDKMAN in JavaFX.pdf
Building a Multiplatform SDKMAN in JavaFX.pdfBuilding a Multiplatform SDKMAN in JavaFX.pdf
Building a Multiplatform SDKMAN in JavaFX.pdf
Jago de Vreede
?
Shopify API Integration for Custom Analytics_ Advanced Metrics & Reporting Gu...
Shopify API Integration for Custom Analytics_ Advanced Metrics & Reporting Gu...Shopify API Integration for Custom Analytics_ Advanced Metrics & Reporting Gu...
Shopify API Integration for Custom Analytics_ Advanced Metrics & Reporting Gu...
CartCoders
?
What Is the Difference Between the Internet and WAN.pdf
What Is the Difference Between the Internet and WAN.pdfWhat Is the Difference Between the Internet and WAN.pdf
What Is the Difference Between the Internet and WAN.pdf
Internet Bundle Now
?
APNIC Update, presented by Joyce Chen at APTLD 87
APNIC Update, presented by Joyce Chen at APTLD 87APNIC Update, presented by Joyce Chen at APTLD 87
APNIC Update, presented by Joyce Chen at APTLD 87
APNIC
?
JACKPOT TANGKI4D BERMAIN MENGGUNAKAN ID PRO 2025 TEPERCAYA LISENSI STAR GAMIN...
JACKPOT TANGKI4D BERMAIN MENGGUNAKAN ID PRO 2025 TEPERCAYA LISENSI STAR GAMIN...JACKPOT TANGKI4D BERMAIN MENGGUNAKAN ID PRO 2025 TEPERCAYA LISENSI STAR GAMIN...
JACKPOT TANGKI4D BERMAIN MENGGUNAKAN ID PRO 2025 TEPERCAYA LISENSI STAR GAMIN...
TANGKI4D
?
QasyndaAIFinalVersionPresentationStartup
QasyndaAIFinalVersionPresentationStartupQasyndaAIFinalVersionPresentationStartup
QasyndaAIFinalVersionPresentationStartup
AidarIsakhanov
?
Hygiene-and-Sanitation with healthcare and the most important hygiene to be
Hygiene-and-Sanitation with healthcare and the most important hygiene to beHygiene-and-Sanitation with healthcare and the most important hygiene to be
Hygiene-and-Sanitation with healthcare and the most important hygiene to be
LoveJade1
?
phase_4_presentation[1] - Read-Only.pptx Iot
phase_4_presentation[1]  -  Read-Only.pptx Iotphase_4_presentation[1]  -  Read-Only.pptx Iot
phase_4_presentation[1] - Read-Only.pptx Iot
harshithamandya49
?
10 Critical Skills Kids Need in the AI Era
10 Critical Skills Kids Need in the AI Era10 Critical Skills Kids Need in the AI Era
10 Critical Skills Kids Need in the AI Era
RachelDines1
?
Here are the Top 10 Writers Of 2025 by GLCP
Here are the Top 10 Writers Of 2025 by GLCPHere are the Top 10 Writers Of 2025 by GLCP
Here are the Top 10 Writers Of 2025 by GLCP
glcppro
?
3d animation3d animation3d animation3d animation
3d animation3d animation3d animation3d animation3d animation3d animation3d animation3d animation
3d animation3d animation3d animation3d animation
animationkeemo21
?
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
APNIC
?
A Teaching Guide for Those interested in teaching monkey beach
A Teaching Guide for Those interested in teaching monkey beachA Teaching Guide for Those interested in teaching monkey beach
A Teaching Guide for Those interested in teaching monkey beach
sethiserena
?
cyber hacking and cyber fraud by internet online money
cyber hacking and cyber fraud by internet online moneycyber hacking and cyber fraud by internet online money
cyber hacking and cyber fraud by internet online money
VEENAKSHI PATHAK
?
Building a Multiplatform SDKMAN in JavaFX.pdf
Building a Multiplatform SDKMAN in JavaFX.pdfBuilding a Multiplatform SDKMAN in JavaFX.pdf
Building a Multiplatform SDKMAN in JavaFX.pdf
Jago de Vreede
?
Shopify API Integration for Custom Analytics_ Advanced Metrics & Reporting Gu...
Shopify API Integration for Custom Analytics_ Advanced Metrics & Reporting Gu...Shopify API Integration for Custom Analytics_ Advanced Metrics & Reporting Gu...
Shopify API Integration for Custom Analytics_ Advanced Metrics & Reporting Gu...
CartCoders
?
What Is the Difference Between the Internet and WAN.pdf
What Is the Difference Between the Internet and WAN.pdfWhat Is the Difference Between the Internet and WAN.pdf
What Is the Difference Between the Internet and WAN.pdf
Internet Bundle Now
?
APNIC Update, presented by Joyce Chen at APTLD 87
APNIC Update, presented by Joyce Chen at APTLD 87APNIC Update, presented by Joyce Chen at APTLD 87
APNIC Update, presented by Joyce Chen at APTLD 87
APNIC
?
JACKPOT TANGKI4D BERMAIN MENGGUNAKAN ID PRO 2025 TEPERCAYA LISENSI STAR GAMIN...
JACKPOT TANGKI4D BERMAIN MENGGUNAKAN ID PRO 2025 TEPERCAYA LISENSI STAR GAMIN...JACKPOT TANGKI4D BERMAIN MENGGUNAKAN ID PRO 2025 TEPERCAYA LISENSI STAR GAMIN...
JACKPOT TANGKI4D BERMAIN MENGGUNAKAN ID PRO 2025 TEPERCAYA LISENSI STAR GAMIN...
TANGKI4D
?
QasyndaAIFinalVersionPresentationStartup
QasyndaAIFinalVersionPresentationStartupQasyndaAIFinalVersionPresentationStartup
QasyndaAIFinalVersionPresentationStartup
AidarIsakhanov
?
Hygiene-and-Sanitation with healthcare and the most important hygiene to be
Hygiene-and-Sanitation with healthcare and the most important hygiene to beHygiene-and-Sanitation with healthcare and the most important hygiene to be
Hygiene-and-Sanitation with healthcare and the most important hygiene to be
LoveJade1
?
phase_4_presentation[1] - Read-Only.pptx Iot
phase_4_presentation[1]  -  Read-Only.pptx Iotphase_4_presentation[1]  -  Read-Only.pptx Iot
phase_4_presentation[1] - Read-Only.pptx Iot
harshithamandya49
?
10 Critical Skills Kids Need in the AI Era
10 Critical Skills Kids Need in the AI Era10 Critical Skills Kids Need in the AI Era
10 Critical Skills Kids Need in the AI Era
RachelDines1
?
Here are the Top 10 Writers Of 2025 by GLCP
Here are the Top 10 Writers Of 2025 by GLCPHere are the Top 10 Writers Of 2025 by GLCP
Here are the Top 10 Writers Of 2025 by GLCP
glcppro
?
3d animation3d animation3d animation3d animation
3d animation3d animation3d animation3d animation3d animation3d animation3d animation3d animation
3d animation3d animation3d animation3d animation
animationkeemo21
?
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
RIRs and the Next Chapter of Internet Growth - from IPv4 to IPv6
APNIC
?
A Teaching Guide for Those interested in teaching monkey beach
A Teaching Guide for Those interested in teaching monkey beachA Teaching Guide for Those interested in teaching monkey beach
A Teaching Guide for Those interested in teaching monkey beach
sethiserena
?

C++からWebRTC (DataChannel)を旋喘する