2012-06-14 40 views
31

Tôi vừa cài đặt studio hình ảnh 2012 RC và cố gắng chạy dịch vụ với netHttpBinding bật WebSocket và nhận được lỗi sauSử dụng WebSocket trên Windows 7

Nền tảng này không hỗ trợ WebSockets phía máy chủ.

mẫu tôi đang chạy là từ http://blogs.microsoft.co.il/blogs/idof/archive/2012/03/01/what-s-new-in-wcf-4-5-websocket-support-part-1-of-2.aspx

WebSockets có thể làm việc trên Windows 7 với visual studio 2012 RC?

Trả lời

44

Không, ổ cắm web chỉ được Windows hỗ trợ nguyên bản trong Windows 8, bất kể bạn đang sử dụng phiên bản studio trực quan nào.

http://www.paulbatum.com/2011/09/getting-started-with-websockets-in.html

Điều này là do một số vấn đề ở mức độ thấp trong Windows 7 với http.sys.

Có một offchance nó có thể được backported, nhưng có vẻ như không: http://weblogs.asp.net/owscott/archive/2012/03/01/what-s-new-in-iis-8.aspx

Để sử dụng WebSockets trên Windows 7, bạn sẽ phải viết dịch vụ của riêng bạn.

Hãy thử sử dụng này cho clientside: http://websocket4net.codeplex.com/

và điều này cho phía máy chủ: http://superwebsocket.codeplex.com/

+0

Tôi có nhầm lẫn trong websocket4net đó là để triển khai phía máy khách không? Sẽ không SuperWebSocket là những gì là cần thiết để chấp nhận các kết nối trên serverside? IDK, tôi có thể sai, nhưng đó là dựa trên mô tả trên trang bạn liên kết đến. – AaronLS

+0

Khá đúng, cảm ơn - đã chỉnh sửa để bao gồm liên kết đến phần phía máy chủ của dự án đó. – Nik

15

Tôi chạy vào cùng một vấn đề và giải quyết nó bằng cách sử dụng Fleck. Dễ thực hiện đơn giản:

Một. NuGet thêm tham chiếu Fleck

Hai. Tạo ổ cắm máy chủ web của bạn

// Create Websocket server 
websocketServer = new Fleck.WebSocketServer("ws://localhost:82"); 
websocketServer.Start(socket => 
{ 
    socket.OnOpen =() => Console.WriteLine("Open!"); 
    socket.OnClose =() => Console.WriteLine("Close!"); 
    socket.OnMessage = message => socket.Send(message); 
}); 

Tôi hiện có API web Self Host ASP.NET trên một cổng và kết nối ổ cắm web chạy dọc theo nó.

+0

Điều này là thú vị, chỉ cần nhấn mạnh rằng Fleck là phía máy chủ thực hiện, không phải phía máy khách. –

2

Tôi đã phát triển một số .NET WebSocket server component sử dụng tính năng không đồng bộ/chờ đợi, hỗ trợ SSL và nén, đã tích hợp để duy trì hoạt động và nhiều thứ khác.

Chúc mừng.

Các vấn đề liên quan