手机-websocket移动端无效但是电脑端正常

问题描述

websocket移动端无效但是电脑端正常

用websocket做了个聊天功能,在电脑端可以正常使用。但在手机端却不能使用。就是在手机端登陆的时候获取不到用户的id.

解决方案

jQuery判断浏览器是移动端还是电脑端自动跳转

解决方案二:

package com.jp100.wapbaike.service;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;

import org.apache.catalina.websocket.MessageInbound;
import org.apache.catalina.websocket.WsOutbound;
import org.apache.log4j.Logger;

@SuppressWarnings("deprecation")
public class WebSocketInboundImpl extends MessageInbound {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(WebSocketInboundImpl.class);
private String userId ;

public WebSocketInboundImpl(String userId){
    this.userId = userId;
}

/**
 * 打开
 */
protected void onOpen(WsOutbound outbound) {

    WebSocketService.getMessageInbound().add(this);
    logger.debug("onOpen(WsOutbound) this" + this); //$NON-NLS-1$
    super.onOpen(outbound);
}

/**
 * 关闭
 */
protected void onClose(int status) {
    WebSocketService.getMessageInbound().remove(this);
    super.onClose(status);
}

/**
 * 流处理
 */
protected void onBinaryMessage(ByteBuffer arg0) throws IOException {
    for (MessageInbound bmsg : WebSocketService.getMessageInbound()) {
        ByteBuffer bb = ByteBuffer.wrap(arg0.array());
        WsOutbound wb = bmsg.getWsOutbound();
        wb.writeBinaryMessage(bb);
        wb.flush();
    }
}

/**
 * 字符处理
 */
protected void onTextMessage(CharBuffer msg) throws IOException {
    logger.debug("onOpen(WsOutbound) this:" + msg); //$NON-NLS-1$
    /*String msgStr = msg.toString();
    JSONObject msgObject = JSONObject.fromObject(msg);
    String userId = msgObject.optString("sendTo");
    String msgContent = msgObject.optString("content");

    sendToUser(userId,msgContent);*/
    for (WebSocketInboundImpl msgib : WebSocketService.getMessageInbound()) {
        CharBuffer cb = CharBuffer.wrap(msg);
        WsOutbound wb = msgib.getWsOutbound();
        wb.writeTextMessage(cb);
        wb.flush();
    }
}

public static void sendToUser(String toUserId,String msg) throws IOException {
    if (logger.isInfoEnabled()) {
        logger.info("sendToUser(String, String) - userId=" + toUserId + ", msg=" + msg); //$NON-NLS-1$ //$NON-NLS-2$
    }
    for (WebSocketInboundImpl msgib : WebSocketService.getMessageInbound()) {
        String uid = msgib.getUserId();
        if (logger.isInfoEnabled()) {
            logger.info("sendToUser(String, String) - String uid=" + uid); //$NON-NLS-1$
        }
        if(!toUserId.equals(uid)){
            continue;
        }
        WsOutbound wb = msgib.getWsOutbound();
        CharBuffer cb = CharBuffer.wrap(msg);
        wb.writeTextMessage(cb);
        wb.flush();
    }

}

public String getUserId() {
    return userId;
}

@Override
public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("WebSocketInboundImpl [userId=").append(userId)
            .append("]");
    return builder.toString();
}

}


解决方案三:

楼主解决这个问题了吗。。。 我也遇到了。。。

时间: 2024-09-07 20:36:51

手机-websocket移动端无效但是电脑端正常的相关文章

为什么百度在移动端和电脑端搜索结果不同?

由于新站权重低,所以作为新手站长的我,吃饭,出门的时候都在用手机搜索我的网站的关键词,一看哇塞,新站一个月关键词就百度排名第二了,惊喜之余,我才想到用手机搜索房产的会有多少用户,大部分房产网站用户都从电脑搜索的,所以赶紧回家用电脑查看.结果发现从电脑上搜索我的关键词,还是排在第二页第九位.很显然,百度在手机的搜索引擎排名与电脑的搜索排名是不一样的. 那么为什么会出现百度手机搜索和电脑搜索排名不一样这样的情况呢?我总结了一下几条. 一:百度搜索的数据库 在收录网页如此之多的情况下,我想百度不会专门

支付宝钱包在电脑端修改登录名绑定手机号码

  1.打开www.alipay.com,点击[登录框右上角二维码区域]; 2.提示[扫码登录],展示二维码; 3.登录支付宝钱包,点击[二维码标志]进入扫码页面,扫描电脑端展示的[扫描登录二维码]; 4.完成扫码提示[扫码成功],请立即点击支付宝钱包页面的[我确认登录支付宝网页],完成登录; 温馨提示:[扫描成功]10分钟内未完成[我确认登录支付宝网页],本次扫码失效需要重新扫码. 5.提示[已确认],用户登录成功. 扫码登录成功后,修改手机号码流程如下: 1.登录支付宝,点击[账户设置]--

语音通话-Android上如何将AF端在打电话时的语音同步到HF端的平板电脑上?

问题描述 Android上如何将AF端在打电话时的语音同步到HF端的平板电脑上? 我实现了蓝牙免提,通过Hands-free Unit控制Audio Gateway上电话的拨打挂断功能,但是当Audio Gateway一端的手机进行通话时,我想将语音在Hands-free Unit端播放,但是就是没有声音,希望做过这方面的前辈给予指导 解决方案 学习了,谢谢大神,受教了

android-Android访问服务器,如何得到电脑端的网页数据?

问题描述 Android访问服务器,如何得到电脑端的网页数据? 实际都被重定向到手机端了,已经解析了网页数据,不过解析的是电脑版,不希望再解析一次手机版,应该是可以设置的吧,因为浏览器都有浏览器标识那个选项. 解决方案 没有看懂, 你服务器和电脑端都表示什么意思? 一般的anroid 用户根据http 协议取数据.数据提供者一般是服务器,服务器提供接口数据给android端调用.数据的格式json .xml 等都可以. 解决方案二: 如果比使用的是chrome,在菜单上有个请求切换到桌面版网站的

高端游戏直播电脑DIY配置推荐

  直播对电脑配置要求高吗?高端游戏直播电脑DIY配置推荐 游戏直播电脑 Q:游戏直播对电脑配置要求高吗? A:用于游戏直播的电脑,一般对电脑性能.宽带.显示器以及外设方面有较高的要求. 性能方面,一般的游戏直播电脑都需要能够流畅满足各类主流游戏需求,一般建议选择中高端电脑配置方案,建议优先选择Intel酷睿i5.i7以及至强3独显平台,另外AMD的FX六核/八核独显平台亦可以考虑. 宽带方面,游戏主播电脑除了对电脑游戏性能有较高要求外,还对宽带有一定的要去,由于直播是多人观看,对宽带也有较高要

电脑端新浪微博怎么群发微博?

  现在基本上每个人都会注册一个新浪微博,晒晒自己每天的心情日记或者是转发别人的心灵鸡汤.一些微博的常规应用,相信大家都比较熟悉. 那么大家知道新浪微博怎么群发微博吗?可能有些朋友听了之后,会觉得一头雾水.今天小编就和大家分享:如何群发新浪微博的图文教程. 步骤1:首先用户打开进入新浪微博的界面菜单,在左侧依次填写登录账号及密码,并且点击"登录"按钮. 步骤2:然后用户就可以顺利进入新浪微博的首页,请在搜索框处输入"微群",在弹出的搜索条处点击选择"新浪微

手机web端(或微信端),实现仿淘宝的“继续拖动查看详情”效果

问题描述 手机web端(或微信端),实现仿淘宝的"继续拖动查看详情"效果 手机web端(或微信端),实现仿淘宝的"继续拖动查看详情"效果(注意不是app端的,js如何实现) 解决方案 http://download.csdn.net/detail/u013338165/8932515

qt-QT编程client端怎么和server端在不同电脑上连接

问题描述 QT编程client端怎么和server端在不同电脑上连接 写了一个简单的QT程序进行client端与server端的连接,运行在同一台电脑上client端输入localhost可以连接,但是运行在不同电脑上client端输入服务器IP无法连接,求大神指教 解决方案 查看具体错误信息,先看服务端的端口是否正确侦听.其次是否有防火墙等拦截 解决方案二: 应该是防火墙的问题,如果两个电脑都在局域网同一个网段并且各自网络没问题的话.

java-通过串口发送到电脑的数据如何存储到电脑端为txt格式

问题描述 通过串口发送到电脑的数据如何存储到电脑端为txt格式 通过串口发送到电脑的数据如何存储到电脑端为txt格式,用C来写还是用java或者c++ 解决方案 编程语言不重要,C/C++有相应的API,JAVA有相应的工具包,只用收到数据,然后写入文件就OK了