怎么使用 socket.io与websocket 连接 WebSocket 服务

什么是Workerman
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。
支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务逻辑开发,不必再为PHP Socket底层开发而烦恼。
下载26873次
Workerman支持的特性
纯PHP开发,多进程支持,支持php7,支持hhvm
支持TCP/UDP,单机可支持数百万以上TCP长连接
支持分布式部署,集群能支持数百万甚至更高的并发TCP连接
支持libevent事件触发网络库
支持热更新及服务器平滑重启
支持守护进程化和统计监控模块
基于高性能的libevent事件网络库,单机可支持百万的并发连接,长连接吞吐量高达36W/S。PHP数据库等对象可以常驻内存,减少解析编译及网络开销。
已被多家公司证实其高可用性,这些公司不乏日营业额过亿的电子商务公司用于服务器后台的开发,以及知名网游公司用于游戏后台的开发。
接口简单,并已经有很多成熟的网络应用,只要你会PHP,你就可以在这些应用的基础上快速的开发出自己的Socket应用服务。
workerman相关应用
一个出色的视频直播,包含Web端、安卓客户端和iphone客户端。
主要功能包括主播系统,礼物系统,游戏系统,道具系统,代理功能,排行榜,充值系统,个人中心,守护系统等。即时通讯采用workerman,视频流采用rtmp协议利用fms或者cdn分发。
(此需要,)
使用HTML5+WebSocket+Workerman实时推送技术开发的小蝌蚪聊天室,聊天室中玩家们化身为小蝌蚪,可以自由游动,并且可以实时聊天,非常有趣。
BrowserQuest是Mozilla发布的一款2D图形的MMO(大型多人在线)游戏,玩家可以聊天、打怪、升级、寻宝、获得成就。这里基于WorkerMan框架重写了BrowserQuest服务端nodejs部分,浏览器与后端同样是基于websocket协议通讯。
一个可扩展的php socket的聊天室,服务端采用workerman作为socket服务器框架,采用web-socket-js作为前端websocket库,支持多浏览器。同样可以用作app聊天室开发。
web消息推送系统,能够通过socket 长连接实时推送消息给所有用户,基于PHPSocketIO开发,客户端使用socket.io客户端,支持各种浏览器。
PHPSocket.IO是Socket.IO的PHP 服务端版本。PHP版socket.io可用来替代传统nodejs版本socket.io服务端,并且接口与其一致,可用于开发跨浏览器或者安卓、ios等移动端即时通讯应用。
一个php写的socks5代理,基于workerman开发。socks5代理不关心应用层协议,是一种通用的代理服务器,可用于做游戏代理、http代理等等。
基于workerman开发的一个http代理。源码仅有几十行,性能强悍。
phptty是一个基于浏览器的Linux终端模拟器,可以在浏览器里面控制Linux终端程序。服务端基于workerman开发。phptty可以实现很多有意思的功能,例如利用htop命令查看服务器负载,tail -f 实时服务器错误日志等等。
一个通过浏览器查看vmstat命令的工具,以更友好的方式实时展示服务器cpu、内存、IO等情况
利用浏览器HTML5捕获摄像头视频并转换成ascii码流,并利用workerman实时转发给其它浏览器展示
网页HTML5调用摄像头,利用websocket将摄像头视频流实时传输给workerman,并实时转发给其它浏览器展示
易联云平台是依托移动互联网的超远程打印解决方案,包含了设备管理中心、互联网API等模块。能够有效的实现易联云和应用之间的对接,帮助用户和开发者方便的使用超远程打印的构架和功能。
一款有趣的手机app,后端基于workerman开发
基于workerman开发的一款手机游戏
多人在线版flappy bird,游戏中你可以看到无数玩家同时控制小鸟前赴后继地向前送死的壮烈(搞笑)场面。
Workerman和Thrift框架相结合,目的是解决异构系统与PHP通信的问题,使你的服务更方便的被其它语言调用。
使用json数据格式通讯的远程调用系统,通讯格式简单明了,方便其它语言调用,并集成了监控模块。
基于php socket开发的一款分布式统计监控系统,udp数据上报,分布式统计,结果自动汇总展示。纯PHP开发、无需安装Mysql、Nginx、Apache等软件。
GatewayWorker是基于Workerman开发的一个可分布式部署的TCP长连接框架,专门用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等
一个简单的消息队列demo,基于Linux sysv 队列实现,需要开启sysvmsg扩展
基于订阅的进程间通讯组件,事件的订阅发布机制,使用方法简单,能够方便的实现进程间及服务器集群间通讯。
进程间数据共享组件,用于分布式数据共享。服务端基于Workerman。客户端可用于任何PHP项目。
phptty发布
分布式进程间通讯组件Channel发布
GatewayWorker2.0发布
web-msg-sender(web消息推送)改版
phpsocket.io发布
workerman3.x windows版本 发布
摄像头视频流直播demo发布
摄像头视频流转ascii码流实时传输demo发布
web vmstat工具发布
BrowserQuest php版本发布
workerman-3.0 发布
workerman-MT多线程版本发布,同时支持Linux Windows平台
聊天室支持分房间等功能
workerman 手册发布
workerman windows 平台多线程测试版本发布
社区功能上线
flappy bird 多人在线版发布
PHP小蝌蚪游戏发布
聊天室发布
分布式监控系统发布
Thrif Rpc框架发布
Json Rpc 框架发布
workerman 框架发布
免费QQ群:
&VIPQQ群:
商务合作联系QQ:
21.60¥Netanyway支付宝
6.66¥呼呼微信
66.0¥innocence微信
1.24¥Bumblebee微信
99.99¥南国的石头支付宝
3.14¥阡横计算机微信
0.01¥包彬微信
12.0¥z-小小小阳微信
1.0¥罗瞳微信
1.0¥王半斤支付宝
99.99¥燕超支付宝
66.66¥孙建微信
8.80¥飞在我的地盘微信
6.0¥bright微信
1.0¥GiitRong微信
0.10¥-北 斗QQ钱包
88.0¥匿名支付宝
1.0¥邹继强支付宝
10.0¥刘伟支付宝
10.0¥农民工微信
12.0¥孙玉平微信
5.0¥吴霖超支付宝
100.0¥Omar微信
1000.0¥李俊霖支付宝
100.0¥周超微信
50.0¥肖滔微信
10.0¥.微信
20.0¥谢文支付宝
20.0¥侯 琼微信
123.0¥李华支付宝
0.88¥湾哥微信
5.18¥SamZhou微信
100.0¥王铁成微信
100.0¥张涛支付宝
10.0¥蔡丽丹支付宝
1.0¥Mu微信
16.66¥林兴武微信
8.0¥智能时代+刘云华微信
5.0¥巴文茂支付宝
1.0¥ice 世界微信
16.80¥王迪润微信
100.0¥吴晓峰支付宝
8.0¥眉趣微信
50.0¥yuyi微信
88.80¥阿海支付宝
50.0¥常州哈酷那软件科技有限公司支付宝
10.0¥姜红支付宝
5.0¥王琳微信
6.66¥Kaibin微信
1.0¥蔡泽永支付宝
10.0¥雪夜无月微信
102.4¥新新支付宝
Powered by
QQ群1:00人已满)
QQ群2:00人)
QQ群3:0人)
商务合作联系QQ:Socket.IO C 基于 WebSocket 构建跨浏览器的实时应用_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Socket.IO C 基于 WebSocket 构建跨浏览器的实时应用
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
你可能喜欢服务端使用socket.io编写,客户端也必须使用socket.io吗,可以直接使用浏览器提供的websocket对象吗? - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
求解答,非常紧急。
接口一样就行。
看看这两篇东西吧。
这个官网。
看了这两篇东西,但还是不明白接口一样指什么?
可以,前提是你必须懂socket.io的交互协议,话说如果都明确了是websocket,可以考虑自己实现了,socket.io的协议可以参考下
Hi,我的理解是服务器端处理好handshake,建立好连接通道就可以了。然后客户端不需要什么协议上的处理,直接使用浏览器websocket对象就好了。 socket.io是客户端必须实现它自己定义的交互协议,才能完成和服务器端socket.io的交互嘛?
对的。它正是对 WebSocket 进行了封装所以使用起来非常方便,而这层封装,从技术上说就是对它协议的实现。
啊啊啊 好吧
那有对客户端协议没有要求的node.js websocket module嘛?
客户端跟 Node.js 没有关系,而且为何你不能直接直接使用
的那个前端库呢?你可以在帖子里面把你的需求再说详细点吗?
不是的。我的意思是我要以node.js作为服务器,与浏览器提供的websockt对象直接通信,不考虑对客户端的websocket做进一层的封装。 我使用的一个框架提供了与浏览器类似的websocket对象,既可以使用在html5中,也可以直接以应用的方式存在,为了保持两边的兼容性,不考虑在这个框架中加入新的东西。
那你可以考虑去找一个直接抡 websocket 的 Node.js module 吧。我目前也没有推荐的,因为没这样用过。
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的socket.io怎么连接远程地址呢 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
我想在我的页面(访问路径http://192.168.10.105:8080/abc或http://localhost:8080/abc)中通过socket.io去连接scoket 服务器,但是 io.connect好像有跨域的问题,不知道大家是怎么解决的呢
var chat1Socket =
io.connect(‘’);,好像是跨域的问题
var chat2Socket =
io.connect(‘’);,用localhost和127.0.0.1都可以成功
不用chat1也不可以,主要的问题是在访问地址IP和端口上
我现在也在研究这个问题。
其实单纯的靠socket.io去访问跨域是可行的,出问题的是session,也就是cookie
你socket.io服务端
io.set(‘authorization’, function (handshakeData, callback) {
肯定有这个认证,一旦跨域,handshakeData.headers.cookie是获取的服务器域的cookie.
而express的session管理也是将cookie记录在服务端里的,只有你访问服务端域的时候,cookie才会生成,这时才有所谓的session。
app.use(session({
resave: true,
saveUninitialized: true,
secret: config.session_option.secret,
cookie: {maxAge: 1000 * 60 * 60 * 24 * 1},
store: storeMemory
在你服务端没有cookie记录的时候(默认为connectsid),直接通过客户端socket.io去远程链接是生成不了cookie的,同时也就获取不到,在认证这块就出了问题,所以就走不通。
前面放个ngnix做反向代理,把Web服务器和WebSocket服务器映射到同一个域。这样行不?
如果 3楼 是正确的话,那做了反向代理也还是没解决 cookie 的问题吧
不行,这不是跨域的问题,而且必须得访问一个服务端的页面让他生成cookie使node的session生效才可以。
我目前暂时是通过隐藏一个iframe去访问一个服务端的空白页面,用来生成cookie里的connectsid值。虽然方法笨了点
还是找不到好的方案,
我就是这样做了的,你所说的不行,应该是别的原因,你要么贴出来,要么自己查。
socket.io连接远程,IP+端口就行,如果要分namespace,后面就路径就是。
我用的这个demo
,后端是java开发的,原理应该和node 的soket.io的后台差不多
那我就不知道了,我用的node,
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的怎么使用 Socket.io 连接 WebSocket 服务_百度知道
怎么使用 Socket.io 连接 WebSocket 服务
我有更好的答案
io的封装,你不用关心里面用了什么连接方式,同时包含了其它的连接方式.io包含了服socket.。你在任何浏览器里都可以使用socket,比如Ajax,通过socket。socket.io封装了websocket.io来建立异步的连接。原因在于不是所有的浏览器都支持websocket.
其他类似问题
为您推荐:
websocket的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 socket.io与websocket 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信