I am trying to make a data exchange system between two websites at their client sides. I am using EasyXDM for this. (http://easyxdm.net/). Here is my code of parent website:
<!DOCTYPE html>
<html xmlns=http://www.w3.org/1999/xhtml>
<head runat=server>
<title>EasyXDM Test</title>
<script type=text/javascript src=easyXDM.debug.js></script>
<script type=text/javascript>
var serv_socket = new easyXDM.Socket({
remote: http://localhost:39452/EasyXDM/Default.aspx,
onMessage: function (message, origin) {
document.getElementById('msg').innerText=Received ' + message + ' from ' + origin + ';
},
onReady: function () {
serv_socket.postMessage(ID);
}
});
</script>
</head>
<body>
<form id=form1>
<div>
<iframe src=http://localhost:39452/EasyXDM/Default.aspx></iframe>
<input type=text id=msgtext /><a href=# onclick=serv_socket.postMessage('d')>Send message</a>
<div id=msg></div>
</div>
</form>
</body>
</html>
And below is the child website's code that is located at localhost:39452
domain:
<!DOCTYPE html>
<html xmlns=http://www.w3.org/1999/xhtml>
<head runat=server>
<title>Server</title>
</head>
<body>
<form id=form1>
<input type=text id=msgtext />
<div>
<script type=text/javascript src=easyXDM.debug.js></script>
<script type=text/javascript>
var socket = new easyXDM.Socket({
onMessage: function (message, origin) {
//document.getElementById('msg').innerText=Received ' + message + ' from ' + origin + ';
socket.postMessage(message);
},
onReady: function (msg) {
socket.postMessage(msg);
}
});
function send() {
socket.postMessage('this is message from server');
}
</script>
<a href=# id=sender onclick=send()>Send message</a>
</div>
</form>
</body>
</html>
The problem is that, when I click Send message
on child website and call socket.postMessage()
it says Uncaught TypeError: Cannot read property 'postMessage' of undefined.
. Please tell me how to solve this issue?
Update: socket
is becoming null or undefined somehow.