Mar*_*wan 4 javascript c# asp.net websocket
我是Web套接字的新手,并尝试使用asp.net Generic Handler和JavaScript WebSocket Class创建一个
JavaScript的
<script type="text/javascript">
window.onload= function () {
var name = prompt('what is your name?:');
var url = 'ws://localhost:5707/ws.ashx?name=' + name;
var ws = new WebSocket(url);
ws.onopen = function () {
alert('Connection Opened');
};
ws.onmessage = function (e) {
};
ws.onclose = function () {
alert('Connection Close');
};
ws.onerror = function (e) {
alert('Error')
};
}
</script>
Run Code Online (Sandbox Code Playgroud)
C#Generic Handler称为ws.ashx
public class ws : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.IsWebSocketRequest)
context.AcceptWebSocketRequest(new TestWebSocketHandler());
}
public bool IsReusable
{
get
{
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
类TestWebSocketHandler,它继承自WebSocketHandler
public class TestWebSocketHandler : WebSocketHandler
{
private static WebSocketCollection clients = new WebSocketCollection();
private string name;
public override void OnOpen()
{
this.name = this.WebSocketContext.QueryString["name"];
clients.Add(this);
clients.Broadcast(name + " has connected.");
}
public override void OnMessage(string message)
{
clients.Broadcast(string.Format("{0} said: {1}", name, message));
}
public override void OnClose()
{
clients.Remove(this);
clients.Broadcast(string.Format("{0} has gone away.", name));
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是
当websocket打算打开时,我注意到当去了处理程序时
context.IsWebSocketRequest // returns false
Run Code Online (Sandbox Code Playgroud)
然后它会激活客户端的错误说
Firefox无法在ws:// localhost:5707/ws.ashx?name = j建立与服务器的连接
然后关闭连接实例化
我需要知道问题出在哪里?和蔼
我在Windows 7下使用vs 2013,我认为它是我工作的IIS 6
WebSockets仅适用于在Windows 8或Windows 2012上运行的ASP.NET应用程序.尽管API已包含在.NET 4.5.1中,但如果您不使用这些操作系统,它将无法运行.实际上,如果你试图使用ClientWebSocket它会抛出一个PlatformNotSupportedException.
如果您无法获得任何这些操作系统,您可以检查替代方案:
| 归档时间: |
|
| 查看次数: |
4385 次 |
| 最近记录: |