在远程服务器上与Socket.iobuild立连接
我创build了一个简单的应用程序Laravel Homestead来testing一些基本的东西:广播事件并在socket.io上监听它们。
一切运作良好。
但是,我想将应用程序上传到远程服务器到名为learn-redis
的目录,并面临挑战。 我的socket.js文件如下所示:
var server = require('http').Server(); var io = require('socket.io')(server); var Redis = require('ioredis'); var redis = new Redis(); redis.subscribe('test-channel'); redis.on('message', function(channel, message){ message = JSON.parse(message); io.emit(channel + ':' message.event, message.data); }); server.listen(8000);
-
在Laravel Homestead,我知道我可以听到8000端口,因为它在运行
vagrant up
时候在控制台上vagrant up
。 那我的远程服务器呢? 我使用什么端口? -
在客户端,我有这个代码。
var socket = io(' http://192.168.10.10:8000 ');
new Vue({ el: '#demo', data: { users: {!! App\User::all() !!} }, ready: function(){ socket.on('test-channel:App\\Events\\UserSignedUp', function(data) { this.users.push( data.user ); }.bind(this)); } });
我已经拉Vue.js和Socket.io.js库,但是当我尝试做var socket = io('http://example.com/learn-redis:8000')
我得到错误http://example.com:8000/socket.io/?EIO=3&transport=polling&t=LBWnq-U net::ERR_CONNECTION_TIMED_OUT
。
您需要有一个VPS服务器才能够安装节点,最有可能的是,您在共享主机上,大多数提供商将不允许您安装节点。 你最好的select是要求你的提供者为你安装节点,或者如果你有资金,升级到VPS服务器。
- 在socket.io v1中重复套接字? “…没有办法'客户'”
- Socket.io不会在ReactJS应用程序中连接
- Express / torrent-stream:从stream中写入文件,使用url将套接字发送给客户端,但客户端无法find文件
- 在azure上缩放nodejs,socket.io和mongodb
- Java – > TCP – > node.js(string数据传输)
- swift – 我可以连接到socket.io服务器,但我不能发射事件
- 我调用Socket.io函数和Uncaught TypeError:undefined不是一个函数
- Socketj在nodejs上的http请求中挂起错误
- 使用socket io在服务器上进行file upload