<script src='https://www.jb51.net/cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script> <script> // 连接服务端 var socket = io('http://xxxx.com:8080');//这里请填写你的域名,外网,端口为socket端口 // 后端推送来消息时 socket.on('new_msg', function (msg) {//这里的new_msg请一定要注意,官方文档都写的是content,但是后端发送的自定义是new_msg,后端定义成new_msg,前端却接受content的字段。所以是接受不了的 swal({ title: "包厢点餐提醒", text: "哆啦a梦包厢有新订单" }) //console.log("收到消息:" + msg); }); </script>
以上有两个我之前出问题的地方
端口与域名:域名是外网的域名,当然是需要和你的socket服务在同一个IP下面,即:你的socket部署在114.114.114.114的IP下面。这个域名就必须是在114.114.114.114的IP下面。端口则是后端服务里面new SocketIO的端口了。
socket.on()文档里面都是socket.on('content',function(msg){....}),但是可以看我们Server.php里面$io->emit('new_msg', '');这里自定义的事件明明叫做new_msg,但是却被写成了content,可能是本人眼拙,没有看清楚,但是也提醒一下,这里确实要注意回调事件名
部署完毕开始运行
现在所有的文件就算是部署好了,进入服务器管理,打开shell。cd到项目根目录。然后执行php server.php start
php server.php start 启动
php server.php stop 停止
php server.php restart 重启
php server.php status 当前服务状态
总结
这次只作为工作总结,因为时间紧迫我也没有好好去研究socketio的更多东西,可能有些地方有纰漏,但是我100%保证这是本人亲自测试,所提到的坑点,都是我一步一步踩过去的。如果有说错的欢迎指教 ^_^