[已解决]socket.io应该不会只能用于nodejs的后端吧?

我做了一个socket的后端,PHP写的,很简单的socket端口监听,用的swoole,但是访问的时候只要send就会提示Client not yet connected
我把访问地址改成demo里的地址就能成功send数据过去
代码如下:
// var sioclient = SocketIO.connect(“tools.itharbors.com:4000”); //demo里的服务地址
var sioclient = SocketIO.connect(“x.x.x.x:xxxx”); //我的服务
sioclient.on(‘connect’,function(err){
cc.log(’…’);
});
this.schedule(function(){ sioclient.send(“test”); },3);

难道后端一定要用nodejs吗?

对比了一下两个socket的返回:
这是demo返回的:
JSB SocketIO.connect method called
Calling native SocketIO.connect method
SIOClientImpl::init() successful
SIOClientImpl::handshake() called
SIOClientImpl::handshake() waiting
JSB SocketIO.on method called
JSB SocketIO eventName to: ‘connect’
SIOClientImpl::handshakeResponse() called
handshake completed
response code: 200

如果调用我的socket,response code: -1,然后handshake fail

你用php写长连接?

理论上来说什么语言都可以的。只要发送返回数据格式一致就行了。

websocket有自已的一套解析标准,你得去看一下,只有根据它的标准来解析才会成功,你的提示错误是握手失败,这是websocket的第一步握手没有通过

— Begin quote from ____

引用第3楼lishujun于2014-09-01 14:08发表的 :
websocket有自已的一套解析标准,你得去看一下,只有根据它的标准来解析才会成功,你的提示错误是握手失败,这是websocket的第一步握手没有通过 http://www.cocoachina.com/bbs/job.php?action=topost&tid=225484&pid=1043463

— End quote

想问一下。有没 有这方面的资料。
websocket解析标准是什么。
另外。怎么设置才可以握手成功

你搜一下websocket标准一大把
这个不是靠简单的设置就行的,而是需要按websocket的标准来解析它的数据帧,并处理这些数据帧,就是你得在你的PHP服务器端做websocket的一些数据解析处理,并返回websocket握手的数据帧,才能握手成功的,握手成功后,通讯也是得按它的定的规则来,不然websocket不受理

服务器是http的

什么语言都可以,只要保持长链接并且返回数据格式一样就行了。找找别人有啥写好的库叭。

不过还是nodejs方便,测试例里面用的就是nodejs。代码是这么写的,socket.io版本是0.9.14.

https://github.com/VisualSJ/tools/blob/master/socket/test.js