{"id":600,"date":"2017-04-03T16:40:18","date_gmt":"2017-04-03T16:40:18","guid":{"rendered":"http:\/\/2017.asheville.wordcamp.org\/?post_type=wcb_session&#038;p=600"},"modified":"2017-06-24T15:04:16","modified_gmt":"2017-06-24T15:04:16","slug":"real-time-publishing-with-websockets","status":"publish","type":"wcb_session","link":"https:\/\/asheville.wordcamp.org\/2017\/session\/real-time-publishing-with-websockets\/","title":{"rendered":"Real-Time Publishing With WebSockets"},"content":{"rendered":"<p><em>*This is a 15-minute Lightning Talk*<\/em><\/p>\n<p>In this talk, we&#8217;ll cover building a WordPress site that leverages the power of Express.js and WebSockets to enable things like live publishing, commenting, and alerting users when content is being edited. We&#8217;ll build a simple Express app to handle POST requests from a WordPress site and turn them into events emitted to users, and build REST API endpoints to handle data from users. We&#8217;ll also talk about integrating something like this into a production site.<\/p>\n<p>Takeaways:<\/p>\n<ul>\n<li>Writing a node.js application with Express and Socket.io to send content to users in real-time<\/li>\n<li>Writing a plugin to send data to an external app through webhooks<\/li>\n<li>Extending the WordPress dashboard<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>*This is a 15-minute Lightning Talk* In this talk, we&#8217;ll cover building a WordPress site that leverages the power of Express.js and WebSockets to enable things like live publishing, commenting, and alerting users when content is being edited. We&#8217;ll build a simple Express app to handle POST requests from a WordPress site and turn them &hellip; <a href=\"https:\/\/asheville.wordcamp.org\/2017\/session\/real-time-publishing-with-websockets\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Real-Time Publishing With WebSockets<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":8712975,"featured_media":0,"template":"","meta":{"_wcpt_session_time":1496508000,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"https:\/\/github.com\/ethanbutler\/wcavl2017","_wcpt_session_video":"http:\/\/wordpress.tv\/2017\/06\/16\/ethan-butler-real-time-publishing-with-websockets\/","_wcpt_speaker_id":[427],"footnotes":""},"session_track":[4045],"session_category":[],"class_list":["post-600","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-developerdesigner"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/phePQ7-9G","session_date_time":{"date":"June 3, 2017","time":"4:40 pm"},"session_speakers":[{"id":"427","slug":"ethan-butler","name":"Ethan Butler","link":"https:\/\/asheville.wordcamp.org\/2017\/speaker\/ethan-butler\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/types\/wcb_session"}],"author":[{"embeddable":true,"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/users\/8712975"}],"version-history":[{"count":3,"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/600\/revisions"}],"predecessor-version":[{"id":1296,"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/600\/revisions\/1296"}],"speakers":[{"embeddable":true,"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/speakers\/427"}],"wp:attachment":[{"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/media?parent=600"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/session_track?post=600"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/asheville.wordcamp.org\/2017\/wp-json\/wp\/v2\/session_category?post=600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}