Based on this post, I used same javscript files and setup to subscribe to platform events from a visualforce page
<!-- LOAD COMETD SCRIPTS -->
<apex:includeScript value="{!URLFOR($Resource.up_resources, 'js/cometd/cometd.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.up_resources, 'js/cometd/jquery.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.up_resources, 'js/cometd/json2.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.up_resources, 'js/cometd/jquery.cometd.js')}"/>
//subscribe to platform event
var url = window.location.protocol+'//'+window.location.hostname+'/cometd/40.0/';
console.log(url);
j$.cometd.init({
url: url,
requestHeaders: { Authorization: 'OAuth {!$Api.Session_ID}'},
appendMessageTypeToURL : false
});
j$.cometd.subscribe('/event/UP_Rule_Execution_Finished__e', function(message) {
console.log(message);
});