cil*_*arl 11 c# azure websocket
我想从Azure中的一个辅助角色运行一个WebSocket服务器.
这在模拟器上本地工作正常,但是第一次运行套接字服务器时会出现Windows防火墙提示.
我想知道是否有人知道如何克服Azure上的套接字的连接问题.
我的socket服务器实现: OnStart
var server = new WebSocketServer("ws://theappname.cloudapp.net:8080/");
server.Start(socket =>
{
socket.OnOpen = () =>
{
Trace.WriteLine("Connected to " + socket.ConnectionInfo.ClientIpAddress,"Information");
_sockets.Add(socket);
};
});
.... etc
Run Code Online (Sandbox Code Playgroud)
客户端实现:
var socket = new WebSocket("ws://theappname.cloudapp.net:8080");
socket.onopen = function () {
status.html("Connection Opened");
};
socket.onclose = function () {
status.html("Connection Closed");
}
Run Code Online (Sandbox Code Playgroud)
closed加载页面后状态会更改为几秒钟.
我的工作者角色的端点如下:
WebSocket Input http 8080 <Not Set>
我现在尝试使用以下内容绑定到内部IP地址:
RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["WebSocket"].IPEndpoint.ToString();
解
为了在Azure上实现websockets时面临这一点的任何人;
如果不在端口80或8080上,您的防火墙可能会拒绝您的连接,因此请为其创建单独的部署.
必须将端点设置为TCP而不是HTTP才能创建正确的防火墙规则.(见图)

仅为了试用,为什么不将输入Endpoit从"http"更改为"tcp"协议.并明确将本地端口设置为8080(在您的情况下是).此外,您必须记住,Windows Azure负载均衡器会终止任何闲置超过60秒的连接,因此您可能希望实施某种"ping"解决方案以保持连接打开.
| 归档时间: |
|
| 查看次数: |
4235 次 |
| 最近记录: |