webpack+socket+node出现的问题

server端:

 1 const express=require('express');
 2 //创建服务器
 3 const app=express();
 4 const server=require('http').createServer(app);
 5 const io=require('socket.io').listen(server);  //socket
 6 //监听端口号55566,,mysql的链接也要更改
 7 server.listen(55566,(err)=>{
 8     if(err)
 9         throw new err;
10     else 
11         console.log('成功监听55566端口。');
12 });
13 
14 io.on('connection',(socket)=>{
15     //用户登录
16     socket.on('login',(data)=>{
17         var sz=data.sz;  //服务区
18         var username=data.username;  //用户名
19         if(checkOnline(sz, username)){  //用户在线
20             //console.log('用户已在线')
21             socket.emit('isExist',true);
22         }else{
23             console.log('登录成功')
24             //socket.id唯一
25             socket.sz=sz;
26             socket.username=username;
27             socket.emit('isExist',false);
28         }
29     });
30     
31 
32     //用户断开连接
33     socket.on('disconnect',()=>{
34         //console.log('用户下线')
35     });
36 });
server端写法
客户
 1 import io from 'socket.io-client';
 2 //建立socket连接
 3     var socket =io.connect('localhost:55566');
 4     socket.on('connect',()=>{
 5         socket.emit('login',{sz:sz,username:username});
 6     });
 7 
 8     //判断用户是否在线
 9     socket.on('isExist',(status)=>{
10         if(status==true){  //已经在线
11             alert('this user is online.');
12             window.location=login_url;
13         }else{  //不在线
14             if(typeof(callback)=='function'){
15                 callback();
16             }
17         }
18     });
端引用

浏览器打开时之前总是出现报错:这个问题花了几个小时折腾。

http://localhost:3000/socket.io/?EIO=3&transport=polling&t=1418187395022-0 404 (Not Found)

 

引起原因是由于在客户端使用:

var socket =io.connect(');引起的,后来将其更改为即可
本地就用var socket =io.connect('localhost:55566');
var socket =io.connect(服务器IP地址+':'+端口号);

posted on 2018-03-02 14:54  楚南  阅读(962)  评论(0编辑  收藏  举报