没有 SSL 的 WebSocket 在 Chrome 中不起作用
Posted
技术标签:
【中文标题】没有 SSL 的 WebSocket 在 Chrome 中不起作用【英文标题】:WebSocket without SSL doesn't work in Chrome 【发布时间】:2014-02-26 15:33:09 【问题描述】:2013 年,我使用 Alchemy (http://alchemywebsockets.net/) 尝试了 Websockets。现在我正在尝试创建一个新项目,但 WebSocket 没有接收或发送任何内容。
我做了一些研究,发现了一个可以测试 WebSockets 的网站 (http://www.websocket.org/echo.html),奇怪的是没有 SSL/TLS WebSockets 甚至都无法工作。
现在,我发现了一个名为 web-socket-js 的项目,它使用 Flash 作为 WebSocket,它在 FireFox 上运行良好,但在 Chrome 中仍然失败。
希望有人能帮帮我,
我正在使用以下代码:
服务器端:
public WSServer()
WSServer.Instance = this;
this.webSocketServer = new WebSocketServer(81, IPAddress.Any)
OnConnected = OnConnected,
OnReceive = OnReceive,
OnDisconnect = OnDisconnect,
TimeOut = new TimeSpan(24, 0, 0)
;
this.webSocketServer.Start();
Console.WriteLine("Started Server");
private void OnConnected(UserContext context)
Console.WriteLine("Connected!");
private void OnDisconnect(UserContext context)
Console.WriteLine("Disconnected");
private void OnReceive(UserContext context)
string dataString = context.DataFrame.ToString();
Console.WriteLine("Got message " + dataString);
客户端:
try
socket = new WebSocket("ws://127.0.0.1:81/");
socket.onopen = function()
console.log("Connection open!");
;
socket.onmessage = function(msg)
console.log("Message: " + msg);
;
socket.onclose = function()
console.log("Connection closed.");
;
catch(exception)
console.log('Error: ' + exception);
【问题讨论】:
相关:WebSocket connection fails on Chrome without SSL 【参考方案1】:Google Chrome 似乎存在错误。在最新版本的 Google Chrome 中,没有 SSL 的 websockets 现在可以正常工作了。
【讨论】:
以上是关于没有 SSL 的 WebSocket 在 Chrome 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法从 NativeScript 应用程序通过 SSL 与 WebSocket 通信?
在 SSL WebSocket 连接 (wss) 中拦截请求
如何在 Express 应用程序中通过 SSL 获取 websocket?