То, что вы ищете, - это сценарий, позволяющий веб-клиентам подключаться к вашему серверу веб-сокетов.
Вы можете создать один файл, который:
- Загрузите некоторые библиотеки, такие как jQuery и / или socket.io (на других сайтах может не быть загруженных)
- Затем выполните свою логику приложения
Поэтому вам нужно загружать библиотеки перед логикой приложения.
Как это:
// embedded-script.js
// You can use this simple function to load the libraries you need
function loadScripts(scripts, complete) {
var loadScript = function( src ) {
var xmlhttp, next;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
return;
}
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
eval(xmlhttp.responseText);
next = scripts.shift();
if ( next ) {
loadScript(next);
} else if ( typeof complete == 'function' ) {
complete();
}
}
}
xmlhttp.open("GET", src , true);
xmlhttp.send();
};
loadScript( scripts.shift() );
}
// load the libraries you need
loadScripts([
"https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js", // assuming you need jQuery
"https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.5.0/socket.io.min.js"
], function() {
// libraries loaded.
// your application logic here
});
а затем предоставить владельцам веб-сайтов этот код для встраивания:
<script src="http://your-domain.com/embedded-script.js"></script>
Некоторые соображения:
-
Распределите свой скрипт в CDN
-
Если ваша прикладная логика включает большое количество файлов, возможно, вам нужен модуль-загрузчик, требующий ваших скриптов. например. requirejs .
-
Я предлагаю вам не выпускать сообщения сокетов на mousemove! Это будет излишним для вашего сервера. Вы должны поменять логику отслеживания мыши на что-то менее дорогое, например, путем обертывания вашего испускания дросселем или дебонтером или просто щелчками мыши.