是不是socket.io的客户端只能在浏览器内运行?
发布于 11 年前 作者 yakczh 10506 次浏览 最后一次编辑是 8 年前
var     io = require("socket.io");
var socket = io.connect('http://localhost:3000/');

报错 TypeError: Object #<Object> has no method ‘connect’

是不是socket.io的客户端只能在浏览器内运行?

6 回复

这是没错… 依赖的 WebSocket 和 Ajax 接口在 Node 环境和浏览器不一样的… 印象里论坛里看到过 socket.io-client 之类模块可以模拟… 没深入过, 楼主找找看

socket.io是一个socket套件,集成了long polling,multipart streaming,Polling以及flash socket和websocket,也就是说他是一个可以backwards的,模糊化了tcpsocket与http即时通讯的框架.因为backwards所以我们和socket.io通讯可以用浏览器的websocket或者long polling,也完全可以使用纯粹的tcpsocket,如果各位发现没有您说需要的平台的client请自行编写.

可以使用tcpsocket??额,呵呵

你要先在nodejs的服务端安装 socket.io npm install socket.io

然后在brower上使用要把 \node_modules\socket.io\node_modules\socket.io-client\dist 目录下的 socket.io.min.js 这个client 放到你的js文件,一般和jquery.min.js放到一个目录下,在client上使用应该是:引入socket.io.min.js文件后直接使用 var socket = io.connect(‘http://sogego.com/’); socket.on(‘news’, function (data) { if(data.hello === ‘world’){ console.log(‘连接到socket’); } });

socket.io-client是可以单独使用的,不用依赖于浏览器。 我有实践过。

不过鉴权那块有点小问题,可能要自己处理。因为单独跑是没有session的。

回到顶部