Sí. Puede enviar JavaScript y CSS a través de WebSockets (o AJAX para el caso). Tampoco debería necesitar codificar64 base64 CSS y JavaScript como lo haría con una imagen, siempre y cuando el servidor WebSocket esté codificando UTF-8 de forma adecuada cualquier carácter Unicode especial en el Javascript.
Una vez que haya recibido el Javascript o CSS a través de WebSocket, se puede cargar mediante el siguiente mecanismo (donde tipo es bien 'script' o 'css'):
function dynamic_load(type, content) {
var elem = document.createElement(type);
elem.type = (type === 'script') ? 'text/javascript' : 'text/css';
elem.innerHTML = content;
document.getElementsByTagName("head")[0].appendChild(elem);
}
Ese mecanismo pueden tener problemas en IE 8 y anterior, pero como está utilizando WebSockets, sospecho que su objetivo son los navegadores modernos. Puede verificar que la función dynamic_load funciona desde la consola de Javascript de su navegador:
dynamic_load('script', "alert('hello world');");
Puede enviar cualquier cosa. No hay nada que no puedas enviar, incluso virus. – Pacerier