nodejs socket 长连接请求

图片说明

有这样一个需求,客户端1通过服务器向客户端2请求加好友,然后客户端2同意或拒绝
之后通知客户端1, 客户端1再处理业务逻辑,有没这种实现方法, 就是客户端1等待
客户端2处理之后才处理自己的逻辑

1个回答

就是一个逻辑处理。把你客户端后序处理放到收到服务器返回结果的响应函数中处理。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
socket长连接
1.服务端需要为每一个客户端开启一个线程   2.客户端需要一直给服务端发送心跳包,如果不发了,就说明连接被断开了,客户端也关闭连接,结束线程。 3.当客户端被动关闭连接(断网,信号不好等情况借助第二种方法)  若是客户端主动关闭连接,服务端会抛出异常,认为连接关闭了,结束线程即可。 4.客户端被动断开之后,需要重连。检测是否断开的方式就是发送心跳包
SOCKET 长连接
是否能给一个SOCKET长连接,客户端异常退出,服务器重启并在accept阻塞的列子呢?
Socket长连接
Socket与底层设备对接服务端,可自动释放资源.
socket 长连接
[代码] web.xml 跳至 [1] [2] [3] [4] ? 1 2 3 4 5 6 Socket服务随web服务启动而启动 demo.socket.SocketListener [2].[代码] SocketListener.java(服务端代码) 跳至 [1] [2] [3] [4] ? 1 2 3 4 5 6 7 8 9 ...
socket长连接和socket短连接
短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。 长连接 连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。 http的长连接
Socket协议,Socket实现长连接
Socket协议,Socket实现长连接
安卓中socket长连接和websocket长连接的实现
现在一款成熟的app一般都会具备长连接推送功能,那么我们要想项目具备长连接的功能现在又两种选择的方案,一种基于原生tcp协议的socket长连接,另外一种基于ws协议的websocket的长连接,今天我们演示两种socket长连接的实现集成方式(1、基于Oksocet框架实现socket长连接   2、基于OKhttp的实现的websocket的链接)下面分别是引用的连接 implementa...
简述http的长连接与web socket的长连接的区别
在大量面试实践中,能够通过本套视频前3道题的面试者,不足5%。 绝大多数的学员都是一知半解,含含糊糊。想获得一份好的工作,必须要在EE阶段打好基础!
http请求长连接工具类
http请求长连接 import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.Header; import org.apache.http.HttpResponse; imp...
java socket长连接
java socket长连接,支持一个服务器向多个客户端推送消息; 客户端和服务端互相监听,每一个一个客户端断开服务端都有监听。客户端和服务端都做了封装,调用简单。数据通信使用Gson,bean和json互转
Socket长连接内存泄漏原因
摘录自http://lbdf001.javaeye.com/blog/548003     socket通信是通过ObjectOutputStream和ObjectInputStream来进行写、读操作的。 首先看一下对象序列化写入,下例将一简单对象序列化到文本文件中: public class TestSocket {      public static void main(Stri...
java socket 长连接
NULL 博文链接:https://yuchuwu.iteye.com/blog/832114
Socket长连接异常处理
socket连接时的异常解释及其产生原因 doc文档
Socket长连接实现思路
长连接的正确实现方式  1、不关闭流实现长连接?    流关闭了而不关闭Socket,还是无法达到长连接的效果的,所以,要长连接,流必须不能关闭!那么,是不是直接不关闭流,然后每次要发消息就直接往流里面任进去数据,然后调用flush()方法强制刷新就行了?其实不行的,这样客户端是无法正常接收信息的,你会发觉就算服务端flush了,客户端还是会一直在read方法那里阻塞!具体原因各位可以看一下java
socket server 长连接服务端
好久没写博客,其实这些年还是做了不少项目的。现在开始记录下。 前段时候接手 集中告警系统。有个接口需要对接 综合监控。我是 服务端, 对方是客户端。需要建立长连接。然后对方每隔500ms 向我发起请求。
socket 长连接实例
NULL 博文链接:https://hoochiang.iteye.com/blog/2148092
java socket 长连接 短连接
长连接是一旦一个客户端登陆上服务器,其与服务器之间的连接就不关闭,不管他们之间进行了多少次交易,直到客户端退出登陆或网络出现故障。这种技术在联机交易系统实现有利于提高效率。 短连接是客户端每发一个请求就与服务器建立一个连接,交易完成后关闭连接,这种技术实现较长连接简单,每次都connect,完成任务后立即断开,下次重连。 长:connect连上后不断开, 进行N次收发操作. ...
谁有socket长连接的例子?
如题
这是SOCKET 的短连接?长连接?
直接上代码,都在注释了,大家看看.我读代码的思路是不是对的.有些带问号的,麻烦大婶们帮回下.rn[code=c]rnrnrn//一个接受和发送的线程.rnDWORD WINAPI FaAndShou(LPVOID lpParameter)rnrn Linjie.Lock();//上锁,这个不知道有什么用处,不过竟然能上锁说明,这rn //个线程如果被建立了,就不允许其他线程调用了.就可以专心致志的为这个rn //连接进来的用户服务吗? 问题1rn int err;rn char fanHuiDeXinXi[32] = "";//要发送回去的rn char jieShouDaoDeXinXi[32] = "";//接收到的rn SOCKET ClientSocket = (SOCKET)(LPVOID)lpParameter;rnrn//循环连接接收和发送了.根据上锁和这里的死循环 从这2点来看,这个线程是不是可以rn//定位为 网路所说的,"长连接"? 问题2rnwhile(1)rn err = SOCKET_ERROR;rn //给jieShouDaoDeXinXi 最后添加个\0,免得给烫烫烫到啊,,,会痛死的.顺便rn //把上次接收到的信息清0.rn for (int i = 0; (int)strlen(jieShouDaoDeXinXi); i++)rn rn jieShouDaoDeXinXi[i] = '\0';rn rnrn //如果err不等于-1,就继续循环等待接收.rn //这里的SOCKET_ERRO,就不了解了,它什么时候会出现呢.?用户断开?rn //在那断?怎么来判断? 问题3rn while (err == SOCKET_ERROR)rn rn //接收到的信息赋值给"jieShouDaoDeXinXi",32长度rn //如果接收不到,或者用户断开连接了.这里的返回就是等rn // 于 SOCKET_ERROR(它的返回就是-1)了吗? 问题4rn err = recv(ClientSocket, jieShouDaoDeXinXi, 32, 0);rn //----------------------------rn //接收到信息(发来的只有1和2和3)rn if ((int)(jieShouDaoDeXinXi[0] - '0') == 1)rn rn //假设接收到的是1,就给他返回什么什么的...在这里如果数rn //据比较多的话.是否在开多个线程,或者执行另一个CPP里的函rn //数来操作,等待函数返回的信息 在赋值给 fanHuiDeXinXi 在send 回去? 问题5rn send(ClientSocket, fanHuiDeXinXi, strlen(fanHuiDeXinXi), 0);rn rn //----------------------------rn //while (err == SOCKET_ERROR)rn //如果我把 //---------------------------- 里的代码放到while (err == SOCKET_ERROR)rn // 循环体里,就真的成为一个长连接了?rn //如果我把while (err == SOCKET_ERROR) 去掉就是短连接了? 问题6rn Linjie.Unlock();//解锁rn return 0;rn//while(1)rnrnrnint main()rnrn //一大堆 SOCKET 版本2.2的代码rn //这里listen()的第二个参数,不了解, 20,就是接收20个用户连接.? 问题7rn if(listen(m_socket,20)==SOCKET_ERROR) rnrn SOCKET AcceptSocket; rn while(1) //又来一个死循环.作用是不断的等待用户吗?问题8rn rn AcceptSocket=SOCKET_ERROR; rn while(AcceptSocket==SOCKET_ERROR) rn rn //这里不解,我见有些教程在第二个 第三个参数都给传参.有rn //些不传,这里的区别是怎么个回事? 问题9rn //AcceptSocket = accept(sock, (struct sockaddr*)&cli_addr, &len);rn AcceptSocket=accept(m_socket,NULL,NULL); rn rn DWORD dwThreadId; rn HANDLE hThread; rn rn hThread=CreateThread(NULL,NULL, FaAndShou, rn (LPVOID)AcceptSocket,0,&dwThreadId); rn if(hThread==NULL) rn rn printf("CreatThread AnswerThread() failed.\n"); rn rn else rn rn printf("CreateThread OK.\n"); rn rn rnrn//在最后.我也见过有些教程使用关闭和清理.如果使用长连接.以下2个函数可以不使用吗? 问题10rn //关闭rn closesocket(sock);rn //释放rn WSACleanup();rnrnrnrn[/code]rnrn不好意思,看到这里,让大婶们辛苦了.rn我也是无奈.新手,之所以能问出以上的问题,也是很无奈.rn在多线程来说.不知道如何来做测试.rn以上写PHP的时候,直接在网页上一刷新就知道问题.C++还真的无奈.rn麻烦大家帮忙看看了.rnrn以上的代码是准备用来做一个棋牌游戏的服务端的.
socket长连接的三种方式
1.net 服务端 服务端【server.js】 const net = require('net') const server = new net.createServer() //创建服务器 //开启服务器端后,他就是初一一个等待服务器链接的状态,服务器的端口号,及ip是客户端链接的ip及端口号。 //当有一个客户端和服务器进行链接了,就会走connect let clinets=[] ser...
TCP Socket 长连接问题
最近在做Linux 下Socket长连接编程时遇到一个问题,当Socket有一段时间没有数据发送(这时Socket客户端和服务器端还是连接着的),突然发送一条信息,调用send函数成功,但是接收方却接收不到信息,当紧接着再发送一次时则可以收到(前一次的包已经丢弃了),请各位大虾指点下。rn环境:Linuxrn语言:c++
Socket长连接问题
要开发一个Socket接口,以前没接触过Socket,百度了一下看的好乱,我这边是客户端,要求用长连接机制来实现,请问各位大神,如何来实现,最好能有例子参考,场景如下:rn对方IP:10.1.198.47rn端口:18899rnrn请求示例如下:QryBossLog 020006 13900000097 20130701000000 20130731000000 200rnrn如何通过Socket长连接方式来得到对方的返回字符串,谢谢
C# Socket长连接
那位可以提供一个C# Socket长连接的列子!
关于socket长连接
最近在做android手机端通过socket连接服务器,要求长连接。也就是第一次读写后不关闭流,套接字,直至退出程序。在没有数据交互的时候,服务器,客户端都会每隔一段时间比如30秒发送心跳包。现在除了心跳包的原因,为什么总是出现IO异常,不知道是什么原因导致断开的。之前没有socket这方面的开发经验,麻烦有这方面的经验的朋友指导下。
网络长连接 socket
没怎么接触网络编程这块,现在要用到长连接,不知道怎么弄,请各大虾,帮忙。多谢
怎样创建Socket的长连接?
怎样创建Socket的长连接?rnrn长连接和短连接的区别是什么?rnrn长连接怎样返回值?rnrn有哪位高手又这方面的示例,如果能帮助我,必有重谢.
java socket 长连接的问题
rn那位仁兄,给我提供一个java socket 长连接的例子啊。rnrn谢谢了!
Java的socket长连接实例
自己写的Java的socket长连接实例 已测试
socket 长连接 心跳包
我们现在需要做一个socket的客户端,与别的公司提供的服务端保持长连接,说明要用心跳包进行长连接,但是用下面的代码好像只能进行第一次正常的连接,之后就会出现被服务端超时强制中断,求高人指点迷津:rnrn[code=Java]rnpackage com.haozhong.recharge.socket;rnrnimport java.io.BufferedReader;rnimport java.io.IOException;rnimport java.io.InputStream;rnimport java.io.InputStreamReader;rnimport java.io.OutputStream;rnimport java.io.PrintWriter;rnimport java.net.InetAddress;rnimport java.net.InetSocketAddress;rnimport java.net.Socket;rnimport java.nio.channels.SocketChannel;rnimport java.util.Random;rnrnimport com.haozhong.recharge.constants.Constants;rnrn// 取参例子 0030 lotterygetcs 101531 7 lt lot rnrnpublic class ClientTest rn public static void main(String[] args)rn SocketChannel channel = null ;rn try rn channel = SocketChannel.open();rn InetAddress add = InetAddress.getByName(Constants.LOTTERY_URL) ;rn InetSocketAddress isa = new InetSocketAddress(add,Constants.LOTTERY_PORT);rn channel.connect(isa) ;rn System.out.println("与服务器建立连接") ;rn /**rn * rn */rn Socket socket = channel.socket() ;rn while(true)rn InputStream is = socket.getInputStream();rn BufferedReader br = new BufferedReader(new InputStreamReader(is));rn OutputStream os = socket.getOutputStream();rn PrintWriter pw = new PrintWriter(os,true);rn String msg = null ;rn char[] cbuf = new char[1024];rn byte[] b = null ;rn StringBuilder sb = new StringBuilder() ;rn String str = "" ;rn msg = "0013\ttest\t"+new Random().nextInt(1000000)+"" ;rn System.out.println(msg) ;rn pw.println(msg);rn while(true)rn if (br.read(cbuf) == -1)rn break;rn rn sb.append(new String(cbuf)) ;rn str = sb.toString() ;rn b = str.getBytes() ;rn if(b.length >= 1024)rn break ;rn rn rn System.out.println(str) ;rn Thread.sleep(5*1000) ;rn /*if(result != null && result != "")rn msg ="0032\tlotterygetcs\t33920001\t7\tlj\tlot\t" ;rn pw.println(msg);rn System.out.println(br.readLine()) ;rn msg = "0100\tlotterygetbulletin\t858939\t60\t33920001\tlot\t2009001\t" ;rn pw.println(msg) ;rn System.out.println(br.readLine()) ;rn */rn rn /*while((msg = r.readLine())!= null)rn pw.println(msg);rn System.out.println(br.readLine());rn if(msg.equals("bye"))rn break ;rn rn */rn catch (IOException e) rn e.printStackTrace();rn catch (InterruptedException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn finallyrn if(channel != null)rn try rn channel.close();rn catch (IOException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn rn rn rnrnrn[/code]
java socket 长连接问题
java socket 长连接,服务器端代码该怎样写?rn最近做项目,碰到了些问题,问题如下:客户端发送到服务器端信息后,服务器端和客户端不断开连接,以后该客户端不向服务器端发送信息即可不定时的接受到服务器端发来的信息rn请教各位大侠们,我该如何实现该功能,代码该如何写????能否附上代码,谢谢帮忙!!!
linux下socket长连接问题
server源码如下:rnrn...;rnbind(..);rnif(listen(socketfd, 20) == -1)rnrn perror("Error call to listen");rn exit(1);rnrnwhile(1)rnrn SocketCmppFd = accept(socketfd, (struct sockaddr *)&pin, &address_size);rn if(SocketCmppFd == -1)rn rn printf("Call to accept error\n");rn exit(1);rn rn FD_ZERO(&sockfd);rn FD_SET(SocketCmppFd, &sockfd);rn switch(select(SocketCmppFd + 1, &sockfd, NULL, NULL, NULL))rn rn case -1: rn perror("error handled\n");rn break;rn case 0: rn perror("timeout hanled\n");rn break;rn default:rn if(FD_ISSET(SocketCmppFd, &sockfd))rn ....;rn rn rnrnrn客户端不停发数据,可是select()总是返回-1,如果把accept()去掉就可以正常接收数据,但是如果客户端断掉,就无法再重联了。rnrn我觉得问题就在accept和select的关系上,感觉上边的程序有问题,怪怪的,只是不知道问题出在哪里。rnrnaccept到底有什么用处,好像跟select有些重复似的。rn
camel socket长连接
如何实现camel的长连接rnmina是短连接的吧
基于心跳的socket长连接
案例: 心跳: socket模拟网页的报文连接某个网站,创建tcp的socket后,当我socket.connect后,如果在5到7秒钟不socket.send,那么这个链接就失效了。 请问如何长时间的保持这个链接 这是在服务器端的设置的,客户端没法设置,可以发送心跳包。 socket.connect后,每3-4秒用socket.send发送一字节数据(内容随便),然后观查这个连接是否保持。 ...
java socket 长连接实例
java socket 的长连接实例,服务器端支持多个客户端连接,服务器端支持客户端的掉线检测。多线程编程
C# socket异步长连接
服务端监听接收端口,以等待建立连接。 客户端向服务端发送连接请求,得到允许后,建立连接。 客户端发送的所有数据都是通过同一条连接。
java实现socket长连接
直接上代码:服务器端:import java.net.Socket;import org.apache.log4j.Logger;import org.springframework.stereotype.Service;import java.io.IOException;import java.net.ServerSocket;public class ServerSide { privat...
socket php(长连接传输数据)
server_socket.php:<?php //创建服务端的socket套接流,net协议为IPv4,protocol协议为TCP $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); /*绑定接收的套接流主机和端口,与客户端相对应*/ if(socket_bind($socket,'127.0.0.1',8888)...
Socket心跳包保持长连接
package com.sk.irwifi;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException;/** * Created by XYSM on 2017/9/
socket长连接demo
工作遇到的情况, 记录一个简单的保持长连接的方法,希望对自己对需要使用socket编程的童鞋有点用处。
Socket长连接 发送心跳包
本人想实现一个Socket长连接的过程,假设发送心跳包的时间间隔TimeInterval为5分钟,要求如果TimeInterval时间内没有收到对端的应答,则再次发送心跳包,但如果在TimeInterval时间间隔内收到了任何回复帧(包括心跳应答帧),都要处理,重新开始计时,发送数据包,一直循环下去。rn下面是我用C#做的,但是不知道怎么组织实现上面的通信过程:rn private void heart()rn rn Thread.Sleep(this.firstInterval);//先休眠一段时间rn lock (this)rn rn bool ret_bool = false;rn SystemLog.WriteLog("****** HeartBeat ******");rn if (send(frameContent(0x04, "", "", "", "")))//发送心跳帧成功rn rn ret_bool = true;rn rn elsern rn ret_bool = false;rn rnrn this.firstInterval = heartInterval;rn rnrn heart();rn rnrn // 取消心跳消息的发送rn private void abortHeartBeat()rn rn if (this.heartThread != null)rn rn SystemLog.WriteLog("****** Abort HeartBeat ******");rn this.heartThread.Abort();rn this.heartThread = null;rn rn rnrnrnrn // 设置首次心跳消息first后发送rn private void heartBeat(int first)rn rn SystemLog.WriteLog("****** Scheduler First " + first.ToString() + "ms HeartBeat ******");rn this.firstInterval = first;rn heartBeat();rn rnrn // 设置heartInterval时间间隔后发生心跳消息rn private void heartBeat()rn rn SystemLog.WriteLog("****** Scheduler HeartBeat ******");rn this.heartThread = new Thread(heart);rn this.heartThread.Start();rn rnrn恳请各位高手指点一下思路,或者给出大致的代码描述提示一下,谢谢!rn
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview