标签: websocket

WebSockets和Apache代理:如何配置mod_proxy_wstunnel?

我有 :

  1. Apache(v2.4)在我的服务器的端口80上www.domain1.com,启用了mod_proxymod_proxy_wstunnel

  2. node.js + socket.io 在同一服务器的端口3001上.

www.domain2.com由于此处描述的方法,访问(使用端口80)重定向到2 . 我在Apache配置中设置了这个:

<VirtualHost *:80>
    ServerName www.domain2.com
    ProxyPass / http://localhost:3001/
    ProxyPassReverse / http://localhost:3001/
    ProxyPass / ws://localhost:3001/
    ProxyPassReverse / ws://localhost:3001/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

除了websocket部分之外,它适用于所有内容:ws://...不会像代理那样传输.

当我访问该页面时www.domain2.com,我有:

Impossible to connect ws://www.domain2.com/socket.io/?EIO=3&transport=websocket&sid=n30rqg9AEqZIk5c9AABN.
Run Code Online (Sandbox Code Playgroud)

问题:如何使Apache代理也成为WebSockets?

apache proxy websocket node.js socket.io

77
推荐指数
9
解决办法
11万
查看次数

如何在PHP中创建websockets服务器

是否有任何教程或指南显示如何在PHP中编写一个简单的websockets服务器?我试过在谷歌上寻找它,但我找不到很多.我发现phpwebsockets但它现在已经过时,不支持最新的协议.我自己尝试更新它,但它似乎不起作用.

#!/php -q
<?php  /*  >php -q server.php  */

error_reporting(E_ALL);
set_time_limit(0);
ob_implicit_flush();

$master  = WebSocket("localhost",12345);
$sockets = array($master);
$users   = array();
$debug   = false;

while(true){
  $changed = $sockets;
  socket_select($changed,$write=NULL,$except=NULL,NULL);
  foreach($changed as $socket){
    if($socket==$master){
      $client=socket_accept($master);
      if($client<0){ console("socket_accept() failed"); continue; }
      else{ connect($client); }
    }
    else{
      $bytes = @socket_recv($socket,$buffer,2048,0);
      if($bytes==0){ disconnect($socket); }
      else{
        $user = getuserbysocket($socket);
        if(!$user->handshake){ dohandshake($user,$buffer); }
        else{ process($user,$buffer); }
      }
    }
  }
}

//---------------------------------------------------------------
function process($user,$msg){
  $action = unwrap($msg);
  say("< ".$action);
  switch($action){
    case "hello" : send($user->socket,"hello human");                       break;
    case …
Run Code Online (Sandbox Code Playgroud)

javascript php websocket

75
推荐指数
4
解决办法
15万
查看次数

基于回合的游戏服务器的websockets和长轮询之间的差异

我正在为iOS游戏编写服务器.游戏是基于回合的,并且服务器将信息推送到客户端的唯一时间是通知对手的移动.

我很好奇是否有人可以评论使用websockets和长轮询之间的性能和易于实现的差异.另外,如果我使用websockets,我应该只使用它来接收信息并发送其他所有的POST请求,还是应该通过websocket进行所有通信?

另外,如果我有兴趣创建一个Web客户端,那么在websockets和长轮询之间还有什么需要考虑的吗?

rest web-services long-polling websocket ios

75
推荐指数
2
解决办法
4万
查看次数

为什么WebSockets没有同源策略?为什么我可以连接到ws:// localhost?

我想使用WebSockets为我的应用程序进行进程间通信(Daemon < - > WebGUI和Daemon < - > FatClient等).在测试期间,我尝试通过websocket.org(http://www.websocket.org/echo.html)上的JavaScript WebSocket客户端连接到我本地运行的Web套接字服务器(ws:// localhost:1234 ).

我现在的问题是:
为什么这可能?浏览器中是否没有实现跨源策略(此处:Linux上的FF29)?

我问,因为如果websocket.org是邪恶的,它可能会尝试与我的本地WS服务器通信,并将从localhost接收的每条消息重定向到任何其他服务器:

Local WebSocket Server            Browser            Evil Web Server
at ws://localhost:1234                               at http://evil.tld
        |                            |                       |
        |                            |------[GET /]--------->|
        |                            |<-----[HTML+EvilJS]----|
        |<------[connect ws://..]----|                       |
        |<----[some communication]-->|                       |
        |                            |----[evil forward]---->|
        |                            |                       |

我没有测试整个用例,但是从websocket.org提供的JS连接到ws:// localhost肯定有效.

javascript security websocket

74
推荐指数
3
解决办法
4万
查看次数

使用JavaScript通过websockets进行视频流传输

使用JavaScript 流式传输实时视频的最快方法是什么?通过TCP的WebSockets是一个足够快的协议来流式传输30fps的视频吗?

javascript video-streaming websocket

72
推荐指数
1
解决办法
12万
查看次数

Node.Js + Socket.IO vs SignalR vs C#WebSocket Server

我目前有一个用.Net编写的TCP服务器应用程序,它接收并向客户端提交消息.我正在寻找构建Web应用程序,因此需要通信层.

我已经构建了一个Node.JS + Socket.IO应用程序,它连接到我的TCP服务器,然后将通信推送到Web应用程序,一切正常.

我刚刚读到有关SignalR作为将其保留在.Net堆栈中的替代方法.

不过,我也发现,我可以写一个C#的WebSocket服务器,一个基本的演示在这里

我认为这个基本服务器就是SignalR,但显然有更多的功能吗?

我想要决定的是,我只是将我当前的TCP应用程序附加到Websocket服务器上,还是单独使用SignalR或Node.js路由?出于兴趣,SignalR应用程序如何运行,是作为Windows服务,控制台应用程序还是IIS服务?

c# asp.net websocket node.js signalr

71
推荐指数
3
解决办法
6万
查看次数

Pusher vs Pubnub vs开源Socket.io/SignalR.net/Faye/jWebSocket

我正在评估Pusher和PubNub,以便在我的主要Web客户端和我的服务器之间实现双向实时通信.两者看起来都令人印象深刻,Pusher的文档看起来更好,而PubNub的可扩展性和可靠性显然是他们的强项.

但是,由于我正在管理预算,我担心Pusher和PubNub的成本可能会成为我们的问题,因此我正在考虑使用其中一个开源替代品 - 我主要关注的是Socket.io,Faye和jWebSocket.

尽管我自己运行服务,但我有自己的顾虑:

  • 有没有人之前实际上将Socket.io或其他开源解决方案扩展到多个服务器?PubNub声称每秒处理1M消息!,我有点怀疑Socket.io可以做到这一点,没有一个不可思议的服务器数量,如果它可以工作.
  • 如果我使用开源解决方案,我可能会错过付费服务中的功能吗?
  • 如果我在AWS上拥有我的服务器,延迟真的会成为一个问题吗?PubNub位于多个位置,所以我希望这可以减少延迟,尽管如果需要从美国发送消息到日本,在日本拥有服务器将无助于延迟,因为它仍然需要以某种方式在那里旅行.

感谢您的建议.

signals websocket socket.io pubnub ably-realtime

71
推荐指数
1
解决办法
3万
查看次数

是否可以使用Web套接字的本机PHP支持?

寻找Web套接字实现的Hello World Type示例:

这是来自php.net的Socket Create参考,但这看起来比Web Sockets更低.

我想在caniuse.com上使用这个Web套接字,现在可以在所有新的主流浏览器中实现.

谷歌搜索出现了这个Nets.TutsPlus网站,我可以在其中使用JavaScript示例代码...但我需要知道如何在PHP中实现服务器端,而不是像示例中那样在Java,Ruby或Node.js中实现.

PHP Socket Create是否相关?PHP本身是否支持Web套接字?我想在PHP实现的正确方向上的一点是有帮助的.

实际上这个教程有一个到phpwebsockets的断开链接......这是应该使用的库吗?

Websockets.org有一个测试应用程序,但没有提到PHP.

javascript php websocket

71
推荐指数
2
解决办法
6万
查看次数

带有UDP的JavaScript WebSockets?

我正在编写一个JavaScript应用程序,它必须从其他用户那里接收大量数据.如果某些数据丢失并不重要.有没有办法使用带有UDP而不是TCP的JavaScript WebSockets?

javascript udp tcp packet websocket

69
推荐指数
4
解决办法
6万
查看次数

通过密码1006获取websockets关闭的原因

我想得到websockets关闭的原因,所以我可以向用户显示正确的消息.

我有

sok.onerror=function (evt) 
     {//since there is an error, sockets will close so...
       sok.onclose=function(e){
           console.log("WebSocket Error: " , e);}
Run Code Online (Sandbox Code Playgroud)

代码总是1006,原因总是"".但我想分别说明不同的结果原因.

例如,命令行给出了一个错误原因:"你不能删除它,因为数据库不会让你".但在Chrome的控制台上,原因仍然是"".

还有其他方法可以区分不同的结果原因吗?

javascript websocket

69
推荐指数
5
解决办法
11万
查看次数