[英]Silverlight client Node.js server - Access denied error
I have a simple nodejs Tcp server that registers each client and broadcasts every message from the client to all other clients. 我有一个简单的nodejs Tcp服务器,它注册每个客户端,并将每个消息从客户端广播到所有其他客户端。
The problem was connecting with silverlight sockets. 问题是与silverlight插座连接。 I am getting an error saying "Access Denied" when I try to connect to my public IP running nodejs Tcp server in 4530 port. 当我尝试连接到在4530端口运行nodejs Tcp服务器的公共IP时,出现错误消息“访问被拒绝”。
nodejs code: nodejs代码:
net = require('net');
var clients = [];
net.createServer(function (socket) {
socket.name = socket.remoteAddress + ":" + socket.remotePort
clients.push(socket);
socket.on('data', function (data) {
broadcast(data, socket);
});
socket.on('end', function () {
clients.splice(clients.indexOf(socket), 1);
});
function broadcast(message, sender) {
clients.forEach(function (client) {
if (client === sender) return;
client.write(message);
});
}
}).listen(4530);
Silverlight code: Silverlight代码:
void Connect(string IP_Address)
{
client_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs()
{
RemoteEndPoint = new IPEndPoint(IPAddress.Parse(IP_Address), 4530)
};
socketEventArg.Completed += OnConncetCompleted;
client_socket.ConnectAsync(socketEventArg);
}
void OnConncetCompleted(object sender, SocketAsyncEventArgs e)
{
if (e.SocketError == SocketError.Success)
{
this.Dispatcher.BeginInvoke(new ShowMessagedelegate(ShowMessageBox), "Connceted Successfully!");
this.Dispatcher.BeginInvoke(new Enabledelegate(EnableControl), true);
}
else
{
this.Dispatcher.BeginInvoke(new ShowMessagedelegate(ShowMessageBox), e.SocketError.ToString());
this.Dispatcher.BeginInvoke(new Enabledelegate(EnableControl), false);
}
}
Maybe, you don't have the clientaccesspolicy.xml file at the root of the nodejs Tcp server. 也许,在nodejs Tcp服务器的根目录下没有clientaccesspolicy.xml文件。 Read more: http://msdn.microsoft.com/ru-ru/library/cc645032(v=vs.95).aspx 了解更多: http : //msdn.microsoft.com/ru-ru/library/cc645032(v=vs.95).aspx
Example policy file: 政策文件示例:
<?xml version="1.0" encoding ="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="file:///" />
</allow-from>
<grant-to>
<socket-resource port="4530" protocol="tcp" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.