 Saya akan bercakap tentang cara menggunakan aplikasi real-time dengan Jeng-Goo di WebSockets Jadi, ia seperti jeng-goo meteorisasi Jadi, saya bekerja untuk perniagaan di Kuala Lumpur Meteor adalah perniagaan javascript yang telah menggunakan real-time Saya bekerja untuk perniagaan di Kuala Lumpur Kami adalah perniagaan perniagaan di Security Analytics Jadi, selanjutnya, kita akan memandangkan masalah kita Kita akan cuba menyuruh perniagaan dan bercakap tentang jeng-goo meteorisasi Dan cara jeng-goo meteorisasi menggunakan web-softket Kita memandangkan banyak hal Jadi, dalam satu sistem real-time yang berlainan Seperti pembentangan di PTA Apabila menjelaskan dia dengan perkara yang berlaku Kita juga perlu menghidupi jeng-goo meteorisasi, perniagaan dan jeng-goo meteorisasi kerana kita mempunyai pembangunan dan sebagainya. Jadi, kita mahu menghantar mereka seperti, Hey, imjainya telah dibuat. Kita boleh periksa sekarang. Kita mahu melalui mekanikkan notifikasi ini untuk menjadi kecil dengan cukup kecil untuk menghantar pekerjaan yang betul tentang perkara yang betul yang berlaku. Jadi, kita juga mahu solusi ini mengalami apabila kita bergerak kepada lebih banyak pekerjaan. Kemudian, kita juga mahu mempunyai analitik yang sebenar yang kita perlu menunjukkan kepada klien. Jadi, kebetulan solusi yang sebenar lebih baik daripada menunjukkan solusi akan lebih baik untuk kes ini. Jadi, ini adalah pekerjaan yang currently available untuk support web soket jangkauan. Jadi, anda dapat melihat banyak mereka yang belum digunakan selama sekejap. Tetapi, selepas memilih beberapa pilihan di sini dan di sana, kita sebenarnya mempunyai Swarm Dragon dari seluruh. Kerana Swarm Dragon mempunyai banyak pekerjaan yang besar yang kita perlukan. Banyak mereka hanya mempunyai support web soket tanpa sebenarnya mempunyai lebih banyak hal daripada itu. Swarm Dragon memperkenalkan perkara lain, saya akan jelaskannya. Jadi, masalahnya adalah bagaimana Swarm Dragon sebenarnya berlaku di sana. Kita sebenarnya memperkenalkan segera seperti projek jangkau kita akan memperkenalkan. Ia menghubungkan ke Tonedo, yang menggunakan Radis sebagai kemessage, yang kemudian menghubungkan ke depan dengan soket jangkauan. Jadi, Swarm Dragon adalah projek tonedo yang anda menggunakan dengan projek jangkauan pada masa yang sama. Jadi, anda memperkenalkan dua servis pada masa yang sama. Jadi, kita menggunakan... Jadi, yang ini menghubungkan kepada konektor, yang adalah aplikasi tonedo yang lain yang kita menggunakan untuk menggunakan proses keperluan yang lama kita menggunakan. Kemudian anda akan menggunakan proses keperluan dengan kembali ke depan projek jangkauan. Okey. Jadi, saya akan pergi ke demo. Jadi, dengan dua demo, kita boleh pergi ke web-side dan melihat aplikasi chatnya. Jadi, anda boleh masuk ke chat. Kemudian anda boleh bercakap tentang staf. Kemudian anda boleh bercakap tentang staf. Okey. Ini adalah contoh yang lebih menarik. Ini adalah contoh yang kita sebenarnya membangun. Jadi, apa yang kita lakukan adalah kita membuat aplikasi ad-building. Jadi, saya akan membangun ad-building sekarang. Jadi, ini membuat kita membangun pembinaan dengan konektor. Jadi, kita mempunyai konektor yang sebenarnya membangun sistem kita dan proses keperluan yang berjalan-jalan sekarang. Jadi, ia membangun pembinaan, ad-building, aplikasi. Jadi, apa yang ini berlaku adalah dalam diagram network. Anda dapat lihat, ini adalah pembinaan web-side yang sekarang membangun pembinaan. Jadi, kita membangun pembinaan sendiri. Jadi, apabila pembinaan anda membangun pembinaan, anda sebenarnya membangun pembinaan di depan. Hey, ada pembinaan baru yang telah dibangun. Dan ia membangun pembinaan di depan dan sebagainya. Jadi, kita membangun pembinaan seperti sistem kita dapat membangun dan membangun pembinaan yang berjalan-jalan terutama untuk membangun apabila apa-apa yang berlaku kerana pembinaan pembinaan itu cukup sulit. Adakah anda ada kesempatan untuk membangun pembinaan? Ya. Maksud saya, semua orang dapat membangun pembinaan yang telah dibangun. Yang ini, yang saya lakukan adalah ia sebenarnya membangun pembinaan yang berjalan-jalan dan ia membangun pembinaan yang berjalan-jalan untuk membangun pembinaan. Jadi, ia sebenarnya membangun pembinaan untuk membangun pembinaan yang berjalan-jalan untuk membangun pembinaan. Dan ia membangun kembali ke Jenggo untuk beritahu okey, keadaan ini telah dibangun. Kerana saya ingin membangun pembinaan untuk itu. Okey, jadi saya akan kembali kemudian. Jadi, saya akan menunjukkan sebuah kode yang telah diperbuat untuk bagaimana pembinaan yang berjalan-jalan sebenarnya berlaku. Jadi, untuk pembinaan yang berjalan-jalan, anda harus membangun pembinaan yang serilis atau serilis kode yang mereka sebenarnya berjalan-jalan. Dan ia membangun pembinaan yang dijadikan. Jadi, ini tidak mempunyai migrasia dan sebagian itu. Anda hanya membaca kecacat2an untuk mengangkatkan pembinaan untuk mengangkatkan kode. Anda tidak perlu mengangkatkan pembinaan untuk mengangkatkan kode. Anda juga dapat membuat mengkutipan untuk mengangkatkan perkara sederhana. Jadi, saya akan membangun pembinaan. Jadi, ini cara mengangkat pembinaan yang seperti Anda mengatakan ilm nama. Saya mahu membuat alih? Saya mahu membuat alih. Oh, maaf. Jadi, ini adalah contoh router yang kami gunakan sebelumnya Jadi, anda mempunyai nama router, yang adalah terserah yang anda boleh menggunakan Mereka menggunakan jawa untuk menghubungkan kembali ke belakang Mereka menggantikan model, dan jika anda mempunyai aplikasi yang perlu untuk router untuk menggantikan data Selepas itu, anda akan menerimanya, okey, untuk ini, saya perlu bahawa Untuk mengangkatkan 2 fb yang berbicara, dan seorang yang telah menggantikan fb, kemudian, anda hanya menggunakan router Serizor ini sangat mudah Serizor adalah seperti jika anda mempunyai framework jenggores yang sama dengan itu Jadi, anda hanya menggunakan model, fb yang anda ingin mengubah, fb yang anda ingin mengubah Jadi, saya akan menggunakan fb yang anda ingin menggunakan API kerana anda boleh menggunakan fb yang anda ingin menggunakan Jadi, fb yang digunakan adalah dua kawasan Jadi, anda membuatkan subcribe di sini Jadi, anda membuatkan suara suara yang di-subscribe Saya meng-subscribe router Ini router yang anda meng-subscribe Ini channel yang anda dapat melakukan Jadi, anda dapat mempunyai banyak channel yang di-subscribe Jadi, saya akan mengatakan bahawa anda mempunyai banyak chatroom Jadi, anda tidak mahu chatroom A dan Messenger untuk menghubungkan chatroom B Jadi, anda mempunyai channel yang anda ingin menggunakan, apapun yang anda ingin Jadi, saya membuatkan gambar app yang anda ingin menggunakan Jadi, gambar app hanya menggunakan Messajnya hanya menggunakan kepada Pada Rookie Jadi, saya hanya menggunakan sebuah pemasaran Selepas anda membuatkan pemasaran channel yang anda menggunakan Yang anda lihat tadi di panel network Ini adalah jason Dan kemudian saya menggunakan jason dan menggunakan So that's it. If you have any questions? Yes? This was shown at 9.9 million that HATSTTB also needs to maintain... Ya, it uses a slightly different HATSTTB connection but I'm just showing you the proof. So the HATSTTB connection is actually it will run a HATSTTB connection to... So it connects to the back and then it returns status code 101 which is it will upgrade the connection from a standard HATSTTB connection to a WebSocket connection from there. As far as WebSocket, as far as the firewall it's an HATSTT connection that's live forever until it frozen. But even when it switches port like that? It doesn't switch port. It doesn't switch port. It just upgrade the connection. And that is what I would like. I would obviously use the non-caliun HATSTTB. Ya, I'm not exactly sure. Because I'm not exactly sure how it does it. I haven't actually tested it yet. He's dead. It's called Spartan now. It's actually fairly complicated so I'll just show you. So I'm running a Django server and I'm running a Swamp Dragon server. I also have to run Redis which is here. And then I'm running my other thing which is actually building the thing. Of course, the standard build consists of two part which is the Django process and the Swamp Dragon process which is essentially a ponado application. Ya, anything else? Are you sure you didn't pick Swamp Dragon because it's so similar to the handle? No. No, because we picked it up because it had filtering and other things similar to the Django ORM. So the rest of it was simply web sockets added on and it didn't have any other integration of Django. It took me about two days because I actually screwed up the sentry logging part so I couldn't actually see any debug messages because you need to add ponado logging in the base config before the error messages come up. Well, Swamp Dragon is a ponado app by itself. Ya, so you just install it install Swamp Dragon but you need to run both servers at the same time. Ya, so one will connect on Swamp Dragon is actually running on port 999 my Django is actually running on port 8000 so for your actual live deployment I actually run it on port 80 both are running on port 80 but they're running on a sub domain instead. Ya, so it's cleaner and you don't have so much firewall problems. Anything else? I mean, what if you I always read that one server can only have like 56,000 sockets at one time or something like that so what if you have 100,000 and you have 7 servers? I have no idea about how big the scaling it's going to be because I've never actually I haven't actually had time to test it in an actual huge environment but from the author he actually posted it onto Hacker News and Hacker News he bombarded his chat service and he stated that about 6,000 is okay but I'm not sure about like 100,000 or that size So how much more connection to do something in real time instead of sending it to private HCCP? Through long polling for example Ya, because I've seen that that most like every line was 300 miles Ya, I'm pushing like every line but I'm actually not very sure about the overhead A lot of this stuff is quite experimental In fact, it's not even production but ya Is there any way to automatically compress multiple messages together? Right now it's because it's subscribed to the Django model So right now I'm creating one model every time it receives the message so if you do a public subscribe directly onto the model then you would receive everything that the model every single change that the model receives It seems like Swam Dragon that would be a good feature in Swam Dragon it's a batch update Ya, you don't have to subscribe to a model you don't have to connect your router to a model you can connect your router to a generic router and then you can batch it batch send So you subscribe to a blind router instead of a model router Ya, I don't quite a view that there's not much benefit to batching unless each piece of data you're setting is really tiny So if you don't send anything you're wasting time because if you send it in spikes it's less efficient than if you send a constant stream Actually they should have something like a reactor ya so if you don't batch it it's less efficient so if you don't send it once or if you don't batch it well as TCP you just send it to the latest fan Ya, but you should respond what do you mean respond because feedback is less efficient and you don't get such feedback when you're talking to TCP socket you get actually no feedback that's one of the things it's one of the costs of using TCP and there's nothing you can do on your app or the ASQ So you can check how much there is in the buffer and how much you're going to store but then you can just let the handle it anyway which is arguably, no matter how well you write it, go depends on what you're going to do better Ya, it's maybe enough discussion it's better over here Is there an interaction with HTTP compression because it break it You mean Gzip or something like that Ya, I have no idea actually For Jambu can you only talk to one swarvagan application as in one connection can you have more than one Can you have multiple routers in mind the same page So for mine, it's actually too prompt for this So So on top is the build messages which is what the type of messages that you saw previously Finally, I'm subscribing to the second one which is the image after the image has been built high it's the image completely processed So it's doing two subscriptions in the same page Of course you can probably layer more Can you connect at the same time Ok, start Alright I'll say next speaker