Здравствуйте. Понимаю - тема устарела, но все же. У меня похожий код. Нужно переменную socket сделать глобальной. Прошу помощи...
"use strict";
(function()
{
// ======== global vars from config ========
var srvaddress = url_base + 'include/socket/';//url каталога
var startserveraddress = srvaddress+'wsstart.php';
var chataddr = 'ws://localhost:8889';
// ======== private vars ========
var socket;
var xhttp;
////////////////////////////////////////////////////////////////////////////
var init = function()
{
//https://learn.javascript.ru/websockets Docs
socket = new WebSocket(chataddr + '/' + cookies + '/516616546465464');
socket.onopen = connectionOpen; //Соединение установлено
socket.onmessage = messageReceived; //Получены данные
//socket.onerror = errorOccurred;
//socket.onopen = connectionClosed;
document.getElementById("msg-send").onclick = function()
{
//sendMessage();
messagesend();
};
};
function messagesend()
{
}
function connectionOpen()
{
socket.send("{\"act\":\"start\", \"msg\":\"Connection with "+chataddr+". Подключение установлено обоюдно, отлично!\"}");
}
function messageReceived(e)
{
var json = eval("(" + e.data + ")");
}
function connectionClose() {
socket.close();
}
return{
// ---- onload event ----
load : function () {
window.addEventListener('load', function () {
init();
}, false);
}
}
})().load();